Runuser: Unterschied zwischen den Versionen
Zeile 88: | Zeile 88: | ||
=== Umgebungsvariablen === | === Umgebungsvariablen === | ||
=== Exit-Status === | === Exit-Status === | ||
'''runuser''' gibt | '''runuser''' gibt den Exit-Status des Befehls zurück, den es ausgeführt hat | ||
* Wenn der Befehl durch ein Signal beendet wurde, gibt '''runuser''' die Nummer des Signals plus 128 zurück | * Wenn der Befehl durch ein Signal beendet wurde, gibt '''runuser''' die Nummer des Signals plus 128 zurück | ||
Version vom 30. Mai 2024, 10:00 Uhr
runuser - Befehle mit ersetzter Benutzer- und Gruppenkennung ausführen
Beschreibung
runuser führt Befehle aus, wobei die Benutzer- und Gruppenkennung ersetzt werden
- Wenn die Option -u nicht verwendet wird, dann weicht runuser auf eine su-kompatible Semantik aus und führt eine Shell aus
- Der Unterschied zwischen den Befehlen runuser und su besteht darin, dass runuser nicht nach einem Passwort fragt (da es nur vom Benutzer Root ausgeführt werden darf) und eine andere PAM-Konfiguration verwendet
- Der Befehl runuser muss nicht mit »set-user-ID«-Zugriffsrechten installiert werden
Falls die PAM-Sitzung nicht »required« ist, dann ist die empfohlene Lösung die Verwendung des Befehls setpriv(1)
Wenn es ohne Argumente aufgerufen wird, dann führt runuser in der Voreinstellung eine Shell als root aus
Aus Gründen der Abwärtskompatibilität wechselt runuser das aktuelle Verzeichnis in der Voreinstellung nicht und setzt nur die Umgebungsvariablen HOME und SHELL (plus USER und LOGNAME, falls der Ziel-Benutzer nicht Root ist)
- Diese Version von runuser verwendet PAM für die Sitzungsverwaltung
Beachten Sie, dass runuser in allen Fällen PAM (pam_getenvlist()) 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 runuser die Ressourcenbegrenzungen RLIMIT_NICE, RLIMIT_RTPRIO, RLIMIT_FSIZE, RLIMIT_AS und RLIMIT_NOFILE des Prozesses zurück
- Ursprung
Dieser runuser-Befehl wurde von su aus den GNU Coreutils abgeleitet, welches auf einer Implementierung von David MacKenzie basiert, und dem Befehl runuser in Fedora von Dan Walsh
Installation
runuser ist Teil des Pakets util-linux, das auf allen Linux-Systemen installiert sein sollte
Anwendung
Fehlerbehebung
Syntax
runuser [Optionen] -u ''Benutzer'' [[--] ''Befehl'' [''Argument''...]]
runuser [Optionen] [-] [''Benutzer'' [''Argument''...]]
Optionen
Option | Beschreibung |
---|---|
-c, --command=Befehl | übergibt den Befehl mit der Option -c an die Shell |
-f, --fast | übergibt -f an die Shell, was abhängig von der jeweiligen Shell nützlich sein kann oder nicht |
-g, --group=Gruppe | legt die primäre Gruppe fest
|
-G, --supp-group=Gruppe | gibt eine ergänzende Gruppe an
|
-, -l, --login | startet die Shell als Anmelde-Shell mit einer Umgebung ähnlich zu einer realen Anmeldung:
|
-P, --pty | erstellt ein Pseudo-Terminal für die Sitzung
Diese Funktion ist vorwiegend für interaktive Sitzungen gedacht
|
-m, -p, --preserve-environment | bewahrt die gesamte Umgebung, das bedeutet, es setzt die Umgebungsvariablen HOME, SHELL, USER oder LOGNAME nicht
|
-s, --shell=Shell | führt die angegebene Shell anstelle der Vorgabe aus
Falls der Zielbenutzer eine eingeschränkte Shell hat (d. h. die nicht in /etc/shells aufgelistet ist), werden die Option --shell und die Umgebungsvariable SHELL ignoriert, außer wenn der aufrufende Benutzer Root ist |
--session-command=Befehl | ist gleichbedeutend mit -c, erzeugt aber keine neue Sitzung (davon wird abgeraten) |
-w, --whitelist-environment=Liste | setzt die in der Kommata-getrennten Liste angegebenen Umgebungsvariablen nicht zurück, wenn die Umgebung für --login bereinigt wird
|
-h, --help | zeigt einen Hilfetext an und beendet das Programm |
-V, --version | zeigt Versionsinformationen an und beendet das Programm |
Parameter
Umgebungsvariablen
Exit-Status
runuser gibt den Exit-Status des Befehls zurück, den es ausgeführt hat
- Wenn der Befehl durch ein Signal beendet wurde, gibt runuser die Nummer des Signals plus 128 zurück
Von runuser erzeugter Exit-Status
Wert | Beschreibung |
---|---|
1 | Allgemeiner Fehler vor dem Ausführen des angeforderten Befehls |
126 | Der angeforderte Befehl konnte nicht ausgeführt werden |
127 | Der angeforderte Befehl wurde nicht gefunden |
Konfiguration
Dateien
runuser liest die Konfigurationsdateien
- /etc/default/runuser
- /etc/login.defs
- Konfigurationseinträge
Option | Typ | Beschreibung |
---|---|---|
ENV_PATH | Zeichenkette | definiert die Umgebungsvariable PATH für einen normalen Benutzer.
|
ENV_ROOTPATH | Zeichenkette | |
ENV_SUPATH | Zeichenkette | definiert die Umgebungsvariable PATH für root
|
ALWAYS_SET_PATH | boolescher Wert | Falls dies auf yes gesetzt ist und --login sowie --preserve-environment nicht angegeben wurden, initialisiert *runuser die Umgebungsvariable PATH |
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
Option | Beschreibung |
---|---|
/etc/pam.d/runuser | Standard-PAM-Konfigurationsdatei |
/etc/pam.d/runuser-l | PAM-Konfigurationsdatei, falls --login angegeben wurde |
/etc/default/runuser | runuser-spezifische logindef-Konfigurationsdatei |
/etc/login.defs | Globale Logindef-Konfigurationsdatei |
Anhang
Siehe auch
- setpriv(1)
- su(1)
- login.defs(5)
- shells(5)
- pam(8)
Dokumentation
Man-Pages
2023-07-24 | util-linux 2.39.1 |
Source file: | runuser.1.de.gz (from util-linux-locales 2.40.1-2) |
Source last updated: | 2024-05-26T13:52:22Z |
Converted to HTML: | 2024-05-30T03:43:06Z |
Info-Pages
Links
Projekt
Weblinks