table of contents
- unstable 2.42.3-1
| SETPRIV(1) | Polecenia użytkownika | SETPRIV(1) |
NAZWA¶
setpriv - uruchamia program z innymi ustawieniami przywilejów linuksowych
SKŁADNIA¶
setpriv [opcje] program [argumenty]
OPIS¶
Ustawia lub odpytuje różne ustawienia przywilejów linuksowych, dziedziczonych poprzez execve(2).
W porównaniu do su(1) i runuser(1), setpriv nie używa PAM, ani nie pyta o hasło. Jest to proste opakowanie wokół execve(2), niekorzystające z set-user-ID, którym można obniżyć uprawnienia w ten sam sposób jak za pomocą setuidgid(8) z daemontools, chpst(8) z runit i podobnymi narzędziami dostarczanymi przez inne menedżery usług.
OPCJE¶
--clear-groups
-d, --dump
--groups grupa...
--inh-caps (+|-)przywilej..., --ambient-caps (+|-)przywilej..., --bounding-set (+|-)przywilej...
Zbiór przywilejów zaczyna się jako bieżący zbiór dziedziczny w przypadku --inh-caps, bieżący zbiór tła w przypadku --ambient-caps oraz bieżący zbiór ograniczający w przypadku --bounding-set.
Proszę zauważyć, że występują następujące ograniczenia (opisane szczegółowo w capabilities(7)) odnoszące się do modyfikacji tych zbiorów przywilejów:
Usunięcie przywileju ze zbioru ograniczającego, bez usuwania go ze zbioru dziedzicznego, może wprowadzić w konfuzję. Nie należy tego robić.
--keep-groups
--init-groups
--list-caps
--nnp, --no-new-privs
Bit no_new_privs jest obsługiwany od Linuksa 3.5.
--rgid gid, --egid gid, --regid gid
Ze względów bezpieczeństwa, konieczne jest podanie jednej z opcji --clear-groups, --groups, --keep-groups lub --init-groups, jeśli ustawia się podstawowy gid.
--ruid uid, --euid uid, --reuid uid
Ustawienie uid lub gid nie zmienia przywilejów, choć końcowe wywołanie exec może je zmienić. Oznacza to, że będąc rootem prawdopodobnie zechce się wykonać coś takiego jak:
setpriv --reuid=1000 --regid=1000 --inh-caps=-all
--securebits (+|-)securebit...
--pdeathsig keep|clear|<sygnał>
--ptracer pid|any|none
--selinux-label etykieta
--apparmor-profile profil
--landlock-access dostęp
Blokowanie wszelkiego dostępu do systemu plików:
setpriv --landlock-access fs
Blokowanie usuwania wszystkich plików i tworzenia katalogów:
setpriv --landlock-access fs:remove-file,make-dir
Pełen zbiór obsługiwanych kategorii dostępu pokaże opcja setpriv --help.
Ogólny symbol zastępczy "fs" może się zmienić i ulec rozszerzeniu w kolejnych wersjach, aby obsłużyć nowe typy dostępu.
--landlock-rule reguła
Składnia jest następująca:
--landlock-rule $typ-reguły:$dostęp:$argument-reguły
Na przykład, aby nadać dostęp do odczytu wszystkiego pod katalogiem /boot:
--landlock-rule path-beneath:read-file:/boot
--seccomp-filter plik
Filtry można tworzyć na przykład za pomocą enosys.
--reset-env
Zmienna środowiskowa PATH może być odmienna w systemach, w których /bin i /sbin połączono z /usr.
-h, --help
-V, --version
UWAGI¶
Jeśli zastosowanie którejś z podanej opcji nie powiedzie się, program nie zostanie uruchomiony, a setpriv powróci ze statusem zakończenia 127.
Należy być ostrożnym przy używaniu niniejszego narzędzia — może spowodować nieprzewidziane konsekwencje związane z bezpieczeństwem. Na przykład ustawienie no_new_privs, a następnie wykonanie programu objętego ograniczeniami SELinux (jak zrobiłoby to narzędzie) może uniemożliwić zastosowanie restrykcji SELinux.
PRZYKŁADY¶
Note that setpriv is not a 1:1 replacement for su(1), runuser(1), or sudo(8). Unlike those tools, setpriv does not use PAM, does not prompt for a password, and does not perform session or accounting setup. The examples below provide a starting point for common privilege-dropping scenarios.
If you want to switch UIDs/GIDs similarly to runuser(1) (without --login), try:
setpriv --reuid=1000 --regid=1000 --inh-caps=-all --init-groups
To also reset the environment (as sudo(8) does by default), add --reset-env:
setpriv --reuid=1000 --regid=1000 --inh-caps=-all --init-groups --reset-env
For a more restrictive setup that also limits the bounding set and prevents gaining new privileges (more restrictive than runuser or sudo):
setpriv --reuid=1000 --regid=1000 --init-groups --inh-caps=-all --bounding-set=-all --no-new-privs --reset-env
Następujące polecenie odtworzy zachowanie setuid(8) z daemontools:
setpriv --reuid=1000 --regid=1000 --clear-groups
AUTORZY¶
Andy Lutomirski <luto@amacapital.net>
ZOBACZ TAKŻE¶
ZGŁASZANIE BŁĘDÓW¶
Problemy należy zgłaszać w systemie śledzenia błędów <https://github.com/util-linux/util-linux/issues>.
DOSTĘPNOŚĆ¶
Polecenie setpriv jest częścią pakietu util-linux, który można pobrać ze strony Archiwum jądra Linux <https://www.kernel.org/pub/linux/utils/util-linux/>.
| 2026-09-02 | util-linux 2.42.3 |