Provided by: util-linux-locales_2.41-4ubuntu3_all bug

BEZEICHNUNG

       setpriv - ein Programm mit anderen Linux-Berechtigungseinstellungen ausführen

ÜBERSICHT

       setpriv [Optionen] Programm [Argumente]

BESCHREIBUNG

       Legt die verschiedenen über execve(2) vererbten Linux-Berechtigungseinstellungen fest oder fragt diese
       ab.

       Im Vergleich zu su(1) und runuser(1) verwendet setpriv 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.

OPTIONEN

       --clear-groups
           löscht zusätzliche Gruppen.

       -d, --dump
           gibt den aktuellen Status der Berechtigungen aus. Diese Option 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..., --ambient-caps (+|-)Cap..., --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.

           Beachten Sie die folgenden Einschränkungen (detailliert in capabilities(7) beschrieben) hinsichtlich
           der Änderungen an diesen Capability-Gruppen:

           •   Eine Capability kann nur zu einem vererbbaren Satz hinzugefügt werden, wenn sie in der
               Begrenzungsmenge vorhanden ist.

           •   Eine Capability kann nur zum Umgebungssatz hinzugefügt werden, wenn sie sowohl in den erlaubten
               als auch vererbbaren Sätzen vorhanden ist.

           •   Trotz der von setpriv bereitgestellten Syntax erlaubt es der Kernel nicht, Capabilities zum
               Umgebungssatz hinzuzufügen.

       Falls Sie eine Capability aus dem Umgebungssatz entfernen, ohne sie auch aus dem vererbbaren Satz zu
       entfernen, kommen Sie wahrscheinlich durcheinander. Tun Sie das besser nicht.

       --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 GID, --egid GID, --regid GID
           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.

       --ptracer pid|any|none
           When Yama’s restricted ptrace mode is in effect (that is, when /proc/sys/kernel/yama/ptrace_scope is
           set to 1), allow being traced via ptrace(2) by the process with the specified PID, or any process, or
           no process. See PR_SET_PTRACER(2const). (Note that this is not inherited by child processes, though
           it is preserved across execve(2).) This option has no effect when Yama is not enabled or is in a mode
           other than restricted ptrace.

       --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 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 verursachen, falls AppArmor nicht verwendet wird, und die Transition könnte
           ignoriert werden oder execve(2) wegen AppArmor fehlschlagen lassen.

       --landlock-access Zugriff
           Enable landlock restrictions for a specific set of system accesses. To allow specific subgroups of
           accesses use --landlock-rule.

           Alle Dateisystemzugriffe blockieren:

           setpriv --landlock-access Dateisystem

           Löschen von Dateien und Anlegen von Verzeichnissen blockieren:

           setpriv --landlock-access Dateisystem

           Eine vollständige Liste aller unterstützten Zugriffskategorien wird mit dem Befehl setpriv --help
           angezeigt.

       --landlock-rule Regel
           Allow one specific access from the categories blocked by --landlock-access.

           Die Syntax ist wie folgt:

           --landlock-rule $Regeltyp:$Zugriff:$Regelargument

           Beispiel für die Gewährung des Lesezugriffs auf alles unter /boot:

           --landlock-rule path-beneath:read-file:/boot

       --seccomp-filter file
           Load raw BPF seccomp filter code from a file.

           Filters can for example be created with enosys.

       --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.

       -h, --help
           zeigt einen Hilfetext an und beendet das Programm.

       -V, --version
           Display version and exit.

ANMERKUNGEN

       Falls irgendeine der angegeben Optionen fehlschlägt, wird das Programm nicht ausgeführt und setpriv gibt
       den Exit-Status 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.

BEISPIELE

       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

AUTOREN

       Andy Lutomirski <luto@amacapital.net>

SIEHE AUCH

       runuser(1), su(1), prctl(2), capabilities(7) landlock(7)

FEHLER MELDEN

       For bug reports, use the issue tracker <https://github.com/util-linux/util-linux/issues>.

VERFÜGBARKEIT

       Der Befehl setpriv ist Teil des Pakets util-linux, welches aus dem Linux-Kernel-Archiv
       <https://www.kernel.org/pub/linux/utils/util-linux/> heruntergeladen werden kann.

util-linux 2.41                                    2025-07-02                                         SETPRIV(1)