Linux-sudo-Befehl
sudo steht für "Super User DO" und ermöglicht autorisierten Benutzern, Befehle als anderer Benutzer (normalerweise der root-Benutzer) auszuführen. Mit anderen Worten: Über sudo ausgeführte Befehle sind so, als hätte root sie persönlich ausgeführt.
Nutzungsberechtigungen: Benutzer, die in /etc/sudoers aufgeführt sind.
Syntax
sudo [选项] 命令
Zum Beispiel:
sudo apt update # 以 root 权限更新软件包列表 sudo vim /etc/hosts # 编辑需要 root 权限的文件
Parameterbeschreibung:
- -i: Simuliert die erstmalige Anmeldung, lädt die Umgebung des Zielbenutzers
- -s: Eine Shell ausführen
- -uuser: Als der angegebene Benutzer ausführen
- -l: Die sudo-Befehle auflisten, die der aktuelle Benutzer ausführen kann
- -v: Benutzeranmeldeinformationen überprüfen (die sudo-Sitzung verlängern)
- -k: Den sudo-Anmeldeinformationscache widerrufen
Beispiele
Einen einzelnen Befehl mit Root-Rechten ausführen:
sudo apt update sudo systemctl restart nginx sudo mkdir /opt/myapp
Zur Shell des root-Benutzers wechseln:
sudo -i # 登录shell,加载root环境变量 sudo -s # 非登录shell sudo su - # 另一种方式
Einen Befehl als anderer Benutzer ausführen:
sudo -u username command
sudo -u postgres psql # 以 postgres 用户运行 psql
Verfügbare Berechtigungen prüfen:
sudo -l
Systemdateien bearbeiten:
sudo nano /etc/hosts sudo vim /etc/nginx/nginx.conf
Konfigurationsdatei
Die sudo-Konfiguration wird in der Datei /etc/sudoers gespeichert und sollte mit dem Befehl visudo bearbeitet werden:
sudo visudo
Allgemeine Konfigurationsbeispiele:
# 允许用户免密码执行所有命令 username ALL=(ALL) NOPASSWD: ALL # 允许用户组执行特定命令 %wheel ALL=(ALL) /bin/systemctl, /usr/bin/apt
Häufig gestellte Fragen
Benutzer nicht in der sudoers-Datei:
# 需要 root 用户将目标用户加入 sudo 组: usermod -aG sudo username # Ubuntu/Debian usermod -aG wheel username # CentOS/RHEL
Anpassen der Cache-Dauer:
Ändern Sie timestamp_timeout in /etc/sudoers (Einheit: Minuten):
Defaults timestamp_timeout=30
Unterschiede zwischen su und sudo
| Merkmal | su | sudo |
|---|---|---|
| Passwort erforderlich | Passwort des Zielbenutzers | Passwort des aktuellen Benutzers |
| Sitzungsdauer | Bis zum manuellen Beenden | Einzelner Befehl oder kurzzeitiger Cache |
| Konfigurationskomplexität | Einfach | Erfordert Konfiguration von sudoers |
| Sicherheit | Erfordert die Kenntnis des Root-Passworts | Granularere Berechtigungskontrolle |
| Auditierung | 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.
Andere Erweiterungen
Linux-Befehlsreferenz