Linux su-Befehl

Linux 命令大全Linux-Befehlssammlung

Der Linux-Befehl su (vollständiger englischer Name: switch user) wird verwendet, um die Benutzeridentität zu wechseln. Außer bei root müssen Sie das Passwort dieses Benutzers eingeben.

Berechtigungen: alle Benutzer.

Syntax

su [选项] [用户名]

Zum Beispiel:

su              # 切换到root,保持当前环境
su -            # 切换到root,加载root的完整环境
su root         # 明确指定切换到root用户

Zu einem anderen Benutzer wechseln:

su username
su - username
su -l username

Parameterbeschreibung:

  • -oder-loder--login: Bietet eine Umgebung, die einer direkten Anmeldung ähnelt
  • -c command: Den angegebenen Befehl ausführen und dann beenden
  • -s shell: Die zu verwendende Shell angeben
  • -poder--preserve-environment: Aktuelle Umgebungsvariablen beibehalten

Beispiele

Vorübergehend einen Befehl als root ausführen:

su -c "apt update && apt upgrade" root

Zu einem Dienstbenutzer zum Debuggen wechseln:

su - www-data
su -s /bin/bash www-data  # 如果默认shell是/bin/false

Verwendung in Skripten:

su - postgres -c "psql -c 'SELECT version();'"

su-Sitzung beenden:

exit        # 退出当前su会话
Ctrl+D      # 同样可以退出

Unterschied zwischen su und su -

su(Nicht-Login-Schalter):

  • Behält die Umgebungsvariablen des aktuellen Benutzers bei
  • Arbeitsverzeichnis unverändert
  • Umgebungsvariablen wie PATH bleiben unverändert

su -(Login-Schalter):

  • Lädt die vollständige Umgebung des Zielbenutzers
  • Wechselt in das Home-Verzeichnis des Zielbenutzers
  • Setzt Umgebungsvariablen wie PATH und HOME zurück
  • Führt die Login-Skripte des Zielbenutzers aus

Beispielvergleich

# 当前用户:john,工作目录:/home/john
pwd                    # /home/john
echo $HOME            # /home/john

su root
pwd                   # /home/john (目录未变)
echo $HOME           # /home/john (环境未变)
exit

su - root
pwd                  # /root (切换到root家目录)
echo $HOME          # /root (完整环境)
exit

Unterschied zwischen su und sudo

Merkmal su sudo
Passwort erforderlich Passwort des Zielbenutzers Passwort des aktuellen Benutzers
Sitzungsdauer Bis zum manuellen Beenden Einzelner Befehl oder kurzzeitiges Zwischenspeichern
Konfigurationskomplexität Einfach Erfordert Konfiguration von sudoers
Sicherheit Root-Passwort muss bekannt sein Feinere Berechtigungssteuerung
Audit Eingeschränkt Ausführlichere Protokolle

Obwohl der Befehl su einfach und direkt ist, ist sudo in der modernen Systemadministration normalerweise die empfohlene Wahl, da es bessere Sicherheits- und Auditfunktionen bietet.


Sicherheitsüberlegungen

  • Vermeiden Sie die Weitergabe des root-Passworts
  • Verwenden Siesu -Sorgen Sie für einen vollständigen Umgebungswechsel
  • Beenden Sie su-Sitzungen umgehend
  • Priorisieren Sie die Verwendung von sudo in Produktionsumgebungen
  • Überwachen Sie die su-Nutzungsprotokolle (normalerweise in /var/log/auth.log)

Linux 命令大全Linux-Befehlssammlung

Weitere Erweiterungen