ÜBERSICHT
setpriv [Optionen] Programm [Argumente]
Legt die verschiedenen über execve(2) vererbten
Linux-Berechtigungseinstellungen fest oder fragt diese ab.
Im Vergleich zu su(1) und runuser(1) verwendet
setpriv(1) weder PAM, noch bittet es um die Eingabe eines Passworts.
Es ist ein einfacher Wrapper für execve(2), der keine
Benutzerkennung setzt und zum Abgeben von Privilegien auf die gleiche Art
wie setuidgid(8) aus daemontools, chpst(8) aus
runit oder ähnlichen Werkzeugen, die von anderen
Diensteverwaltern ausgeliefert werden, verwendet werden kann.
- --clear-groups
- löscht zusätzliche Gruppen.
- -d, --dump
- gibt den aktuellen Status der Berechtigungen aus. Dies kann mehrfach
angegeben werden, um zusätzliche, aber weitestgehend nutzlose
Informationen anzuzeigen. Dies ist zu allen anderen Optionen
inkompatibel.
- --groups
Gruppe …
- setzt zusätzliche Gruppen. Das Argument ist eine durch Kommata
getrennte Liste von Gruppenkennungen oder Namen.
- --inh-caps
(+|-)Cap … oder --ambient-caps
(+|-)Cap … oder --bounding-set
(+|-)Cap …
- setzt die vererbbaren Capabilities, Umgebungs-Capabilities oder die
Capabilities-Begrenzungsmenge. Siehe capabilities(7). Das Argument
ist eine durch Kommata getrennte Liste von +cap-
beziehungsweise -cap-Einträgen, die jeweils einen
entsprechenden Eintrag hinzufügen oder entfernen. Cap kann
entweder ein menschenlesbarer Name wie in capabilities(7) sein
(ohne das Präfix cap_) oder als cap_N formatiert
sein, wobei N der von Linux intern verwendete Capability-Index ist.
+all und -all können Sie zum Hinzufügen oder
Entfernen aller Capabilities verwenden. Die Gruppe der Capabilities ist
anfänglich der als der aktuell vererbbare Satz für
--inh-caps, der aktuelle Umgebungs-Satz für
--ambient-caps und die aktuelle Begrenzungsmenge für
--bounding-set. Wenn Sie etwas aus der Begrenzungsmenge weglassen,
ohne es zugleich aus der vererbbaren Gruppe wegzulassen, wird Sie das
wahrscheinlich verwirren. Sie sollten das nicht tun.
- --keep-groups
- behält zusätzliche Gruppen bei. Dies ist nur zusammen mit
--rgid, --egid oder --regid nützlich.
- --init-groups
- initialisiert zusätzliche Gruppen mittels initgroups(3).
Dies ist nur zusammen mit --ruid oder --reuid
nützlich.
- --list-caps
- listet alle bekannten Capabilities auf. Diese Option muss allein angegeben
werden.
- --no-new-privs
- setzt das no_new_privs-Bit. Wenn dieses gesetzt ist, gewährt
execve(2) keine neuen Privilegien. Zum Beispiel werden sowohl die
Bits »set-user-ID« und »set-group-ID« als auch
die Datei-Capabilities deaktiviert. Die Ausführung von Programmen
wird mit diesen gesetzten Bits noch möglich sein, aber sie werden
keine Privilegien erlangen können. Bestimmte Linux Security Modules
(LSMs), vor allem AppArmor, könnten das Ausführen bestimmter
Programme verhindern. Dieses Bit wird an Kindprozesse vererbt und kann
nicht zurückgesetzt werden. Siehe prctl(2) und
Documentation/prctl/no_new_privs.txt in den Linux-Kernelquellen.
Das Bit »no_new_privs« wird seit Linux 3.5
unterstützt.
- --rgid
Gruppenkennung, --egid Gruppenkennung, --regid
Gruppenkennung
- setzt die reale, effektive oder beide Gruppenkennungen. Das Argument
Gruppenkennung kann als Gruppenname in Textform angegeben werden.
Aus Sicherheitsgründen müssen Sie eine der
Optionen --clear-groups, --groups, --keep-groups
oder --init-groups angeben, wenn Sie eine primäre
Gruppenkennung setzen.
- --ruid
Benutzerkennung, --euid Benutzerkennung, --reuid
Benutzerkennung
- setzt die reale, effektive oder beide Benutzerkennungen. Das Argument
Benutzerkennung kann als Anmeldename in Textform angegeben werden.
Das Setzen einer Benutzerkennung oder
Gruppenkennung ändert keine Capabilities, obwohl der
Exec-Aufruf doch Capabilities ändern könnte. Das bedeutet,
dass Sie mit Root-Rechten vielleicht Folgendes tun wollen:
setpriv --reuid=1000 --regid=1000 --inh-caps=-all
- --securebits
(+|-)Sicherheitsbit …
- setzt Sicherheitsbits oder setzt sie zurück. Das Argument ist eine
durch Kommata getrennte Liste. Zulässige Sicherheitsbits sind
noroot, noroot_locked, no_setuid_fixup,
no_setuid_fixup_locked und keep_caps_locked.
keep_caps wird von execve(2) zurückgesetzt und ist
daher nicht erlaubt.
- --pdeathsig
keep|clear|<Signal>
- erhält oder setzt das Eltern-Tötungssignal oder setzt es
zurück. Einige LSMs, vor allem SELinux und AppArmor, setzen das
Signal zurück, wenn sich die Anmeldedaten des Prozesses
ändern. Mit --pdeathsig keep können Sie, um die
Situation zu verbessern, das Eltern-Tötungssignal wiederherstellen,
nachdem die Anmeldedaten des Prozesses geändert wurden.
- --selinux-label
Label
- fordert eine bestimmte SELinux-Transition (Übergang) an (mit einer
Transition auf exec, nicht dyntrans). Dies wird fehlschlagen und einen
Abbruch von setpriv(1) verursachen, falls SELinux nicht verwendet
wird, und die Transition könnte ignoriert werden oder
execve(2) wegen SELinux fehlschlagen lassen (insbesondere wird dies
wahrscheinlich mit no_new_privs nicht funktionieren). Dies ist
ähnlich zu runcon(1).
- --apparmor-profile
Profil
- fordert ein bestimmtes AppArmor-Profil an (mit einer Transition auf exec).
Dies wird fehlschlagen und einen Abbruch von setpriv(1)
verursachen, falls AppArmor nicht verwendet wird, und die Transition
könnte ignoriert werden oder execve(2) wegen AppArmor
fehlschlagen lassen.
- --reset-env
- setzt alle Umgebungsvariablen außer TERM zurück;
initialisiert die Umgebungsvariablen HOME, SHELL, USER, LOGNAME
entsprechend dem Passworteintrag des Benutzers; setzt PATH für
einen normalen Benutzer auf /usr/local/bin:/bin:/usr/bin und
für den Root-Benutzer auf
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin.
Die Umgebungsvariable PATH kann auf Systemen anders sein, auf
denen /bin und /sbin in /usr zusammengeführt sind. Die
Umgebungsvariable SHELL ist standardmäßig /bin/sh,
sofern im Passworteintrag des Benutzers nichts angegeben ist.
- -V, --version
- zeigt Versionsinformationen an und beendet das Programm.
- -h, --help
- zeigt einen Hilfetext an und beendet das Programm.
Falls irgendeine der angegeben Optionen fehlschlägt, wird
das Programm nicht ausgeführt und setpriv gibt den
Exit-Code 127 zurück.
Seien Sie vorsichtig mit diesem Werkzeug – es könnte
unerwartete Folgen für die Sicherheit haben. Wenn Sie beispielsweise
»no_new_privs« setzen und dann ein Programm ausführen,
das durch SELinux eingeschränkt wird (wie es dieses Werkzeug machen
würde), könnte das die SELinux-Einschränkungen
wirkungslos machen.
Wenn Sie ein Verhalten wünschen, das ähnlich zu
su(1)/runuser(1) oder sudo(8) (ohne die Option
-g) ist, versuchen Sie Folgendes:
setpriv --reuid=1000 --regid=1000 --init-groups
Wenn Sie das Verhalten von setuid(8) aus Daemontools
nachbilden wollen, versuchen Sie:
setpriv --reuid=1000 --regid=1000 --clear-groups
Der Befehl setpriv ist Teil des Pakets util-linux, welches
aus dem
Linux
Kernel-Archiv heruntergeladen werden kann.
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von
Mario Blättermann <mario.blaettermann@gmail.com> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
GNU General Public License Version 3 oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite
finden, schicken Sie bitte eine E-Mail an
<debian-l10n-german@lists.debian.org>.