GNU/Linux >> Znalost Linux >  >> Linux

Je možné spustit „unshare -n [program]“ jako neprivilegovaný uživatel?

Chci spustit program bez přístupu k internetu, např.

unshare -n ping 127.0.0.1 .

Jako neprivilegovaný uživatel vrátí Operation not permitted , jako privilegovaný uživatel vrátí požadované Network is unreachable .

Existuje nějaký způsob, jak zajistit, aby to fungovalo i pro neprivilegovaného uživatele?

Přijatá odpověď:

V novějších verzích util-linux unshare získal --map-root-user volba. Citace z unshare(1) verze 2.26.2:

-r, –map-root-user

Spusťte program až poté, co byly aktuální platné ID uživatele a skupiny namapovány na UID a GID superuživatele v nově vytvořeném jmenném prostoru uživatele. To umožňuje pohodlně získat schopnosti potřebné ke správě různých aspektů nově vytvořených jmenných prostorů (jako je konfigurace rozhraní v síťovém jmenném prostoru nebo připojení souborových systémů do jmenného prostoru připojení), i když jsou spuštěny bez oprávnění. Jako pouhá funkce pohodlí nepodporuje sofistikovanější případy použití, jako je mapování více rozsahů UID a GID. Tato volba znamená –setgroups=deny.

Na novějších systémech tedy můžete spustit:

unshare -n -r ping 127.0.0.1

A to povede k očekávanému Network is unreachable .

Na systémech Debian můžete stále dostat Operation not permitted chyba, pak musíte nejprve povolit neprivilegované uživatelské jmenné prostory spuštěním:

sudo sysctl -w kernel.unprivileged_userns_clone=1

Poznámka:pro širší rozsah případů použití je propracovanější bwrap --unshare-net jak je stručně popsáno v jiné odpovědi.


Linux
  1. Spusťte kontejnery na Linuxu bez sudo v Podman

  2. Spustit skript s argumenty jako uživatel?

  3. Je dobrou praxí spouštět démona pod uživatelským účtem bez oprávnění root?

  1. Je možné spustit Ubuntu na Nexus 7?

  2. Spustit příkaz shell v jenkins jako uživatel root?

  3. Spusťte část bash skriptu jako jiný uživatel

  1. Je možné spustit Microsoft Excel pod Ubuntu?

  2. Upstart:Spusťte službu jako neprivilegovaný uživatel a skript před spuštěním jako root

  3. Je možné automaticky spustit celer při spuštění?