SU(1) | Dienstprogramme für Benutzer | SU(1) |
BEZEICHNUNG¶
su - einen Befehl unter anderer Benutzer- und Gruppenkennung ausführen
ÜBERSICHT¶
su [Optionen] [-] [Benutzer [Argument...]]
BESCHREIBUNG¶
su ermöglicht es, Befehle unter anderer Benutzer- und Gruppenkennung auszuführen.
Wenn beim Aufruf kein Benutzer angegeben wird, öffnet su standardmäßig eine interaktive Shell als_root_. Wenn ein Benutzer angegeben wird, können zusätzliche Argumente übergeben werden, wobei diese an die Shell weitergeleitet werden.
Aus Gründen der Abwärtskompatibilität wechselt su standardmäßig nicht das aktuelle Verzeichnis und setzt lediglich die Umgebungsvariablen HOME und SHELL (plus USER und LOGNAME, falls der Ziel-Benutzer nicht Root ist). Es wird empfohlen, stets die Option --login (statt deren Kurzform - zu verwenden, um durch Mischen der Umgebungen verursachte Nebenwirkungen zu vermeiden.
Diese Version von su verwendet PAM zur Authentifizierung sowie für die Benutzerkonten- und Sitzungsverwaltung. Einige der in anderen su-Implementationen verfügbaren Konfigurationsoptionen, wie die Unterstützung für eine Gruppe »wheel«, müssen über PAM konfiguriert werden.
su zielt vorrangig auf nicht privilegierte Benutzer ab. Die empfohlene Lösung für privilegierte Benutzer (zum Beispiel durch Root ausgeführte Skripte) ist der Befehl runuser(1), der keine Benutzerkennung setzt, keine Authentifizierung erfordert und eine separate PAM-Konfiguration bereitstellt. Falls keine PAM-Sitzung erforderlich ist, wird empfohlen, den Befehl setpriv(1) zu verwenden.
Beachten Sie, dass su in allen Fällen PAM (pam_getenvlist(3)) zum endgültigen Ändern der Umgebung verwendet. Die Befehlszeilenoptionen wie --login oder --preserve-environment wirken sich auf die Umgebung aus, bevor sie von PAM verändert wird.
Seit Version 2.38 setzt su die Ressourcenbegrenzungen RLIMIT_NICE, RLIMIT_RTPRIO, RLIMIT_FSIZE, RLIMIT_AS und RLIMIT_NOFILE des Prozesses zurück.
OPTIONEN¶
-c, --command=Befehl
-f, --fast
-g, --group=Gruppe
-G, --supp-group=Gruppe
-, -l, --login
Note that on systemd-based systems, a new session may be defined as a real entry point to the system. However, su does not create a real session (by PAM) from this point of view. You need to use tools like systemd-run or machinectl to initiate a complete, real session.
su tut Folgendes:
-m, -p, --preserve-environment
-P, --pty
Diese Funktion ist vorwiegend für interaktive Sitzungen gedacht. Falls die Standardeingabe kein Terminal ist, sondern beispielsweise eine Pipe (zum Beispiel echo "date" | su --pty), dann wird der ECHO-Schalter für das Pseudo-Terminal deaktiviert, um unordentliche Ausgaben zu vermeiden.
-s, --shell=Shell
Die auszuführende Shell wird nach den folgenden Regeln in dieser Reihenfolge ausgewählt:
--session-command=Befehl
-T, --no-pty*
-w, --whitelist-environment=Liste
-h, --help
-V, --version
SIGNALE¶
Nach dem Empfang von SIGINT, SIGQUIT oder SIGTERM beendet su seinen Kindprozess und anschließend sich selbst mit dem empfangenen Signal. Der Kindprozess wird durch SIGTERM beendet, nach einem fehlgeschlagenen Versuch und zwei Sekunden Verzögerung wird der Kindprozess mit SIGKILL getötet.
KONFIGURATIONSDATEIEN¶
su liest die Konfigurationsdateien /etc/default/su und /etc/login.defs. Die folgenden Konfigurationseinträge sind für su relevant:
FAIL_DELAY (Zahl)
ENV_PATH (Zeichenkette)
ENV_ROOTPATH (Zeichenkette), ENV_SUPATH (Zeichenkette)
ALWAYS_SET_PATH (boolescher Wert)
Die Umgebungsvariable PATH kann auf Systemen, auf denen /bin und /sbin in /usr zusammengeführt sind, anders sein. Diese Variable wird auch von der Befehlszeilenoption --login und den PAM-Systemeinstellungen (z.B. pam_env(8)) beeinflusst.
EXIT-STATUS¶
su gibt normalerweise den Rückgabewert des Befehls aus, den es ausgeführt hat. Wenn der Befehl von einem Signal beendet wurde, gibt su die Signalnummer plus 128 zurück.
Von su selbst erzeugte Rückgabewerte:
1
126
127
DATEIEN¶
/etc/pam.d/su
/etc/pam.d/su-l
/etc/default/su
/etc/login.defs
ANMERKUNGEN¶
Aus Sicherheitsgründen protokolliert su alle fehlgeschlagenen Anmeldeversuche in der bmtp-Datei, schreibt jedoch nichts in die lastlog-Datei. Diese Lösung erlaubt die Steuerung des Verhaltens von su durch die PAM-Konfiguration. Wenn Sie das Modul pam_lastlog(8) zur Ausgabe von Warnmeldungen zu fehlgeschlagenen Anmeldeversuchen verwenden wollen, dann muss pam_lastlog(8) so konfiguriert werden, dass es ebenfalls die lastlog-Datei aktualisiert. Zum Beispiel durch:
session required pam_lastlog.so nowtmp
GESCHICHTE¶
Der Befehl su wurde aus dem su der GNU Coreutils abgeleitet, das auf einer Implementation von David MacKenzie basiert. Die Version für Util-linux wurde von Karel Zak restrukturiert.
SIEHE AUCH¶
setpriv(1), login.defs(5), shells(5), pam(8), runuser(1)
FEHLER MELDEN¶
Nutzen Sie zum Melden von Fehlern das Fehlererfassungssystem auf <https://github.com/util-linux/util-linux/issues>.
VERFÜGBARKEIT¶
Der Befehl su ist Teil des Pakets util-linux, welches aus dem Linux-Kernel-Archiv <https://www.kernel.org/pub/linux/utils/util-linux/> heruntergeladen werden kann.
2025-01-14 | util-linux 2.40.4 |