English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Linux sudo命令

Vollständiges Kommando-Verzeichnis von Linux

Linux sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。

使用权限:在 /etc/sudoers 中有出现的使用者。

语法

sudo -V
sudo -h
sudo -l
sudo -v
sudo -k
sudo -s
sudo -H
sudo [ -b ] [ -p prompt ] [ -u username/#uid] -s
sudo command

参数说明:

  • -V 显示版本编号
  • -h 会显示版本编号及指令的使用方式说明
  • -l 显示出自己(执行 sudo 的使用者)的权限
  • -v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
  • -k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
  • -b 将要执行的指令放在背景执行
  • -p prompt 可以更改问密码的提示语,其中 샫为使用者的帐号名称, %h 会显示主机名称
  • -u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
  • -s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
  • -H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )
  • command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令

在线示例

sudo命令使用

$ sudo ls
[sudo] password for hnlinux: 
hnlinux is not in the sudoers file. This incident will be reported.

指定用户执行命令

# sudo -u userb ls -l

显示sudo设置

$ sudo -L //显示sudo设置
Available options in a sudoers "Defaults" line:
syslog: Syslog facility if syslog is being used for logging
syslog_goodpri: Syslog-Priorität, die verwendet wird, wenn der Benutzer die Authentifizierung erfolgreich durchführt
syslog_badpri: Syslog-Priorität, die verwendet wird, wenn der Benutzer die Authentifizierung unsuccessful verliert
long_otp_prompt: Setze OTP-Eingabeaufforderung auf eine eigene Zeile
ignore_dot: Ignoriere '.' in $PATH
mail_always: Sende immer E-Mail, wenn sudo ausgeführt wird
mail_badpass: Sende E-Mail, wenn die Benutzerauthentifizierung fehlschlägt
mail_no_user: Sende E-Mail, wenn der Benutzer nicht im sudoers ist
mail_no_host: Sende E-Mail, wenn der Benutzer nicht im sudoers für diesen Host ist
mail_no_perms: Sende E-Mail, wenn der Benutzer nicht berechtigt ist, einen Befehl auszuführen
tty_tickets: Verwende eine separate Zeitstempel für jeden Benutzer/tty combo
lecture: Erkläre dem Benutzer das erste Mal, wenn er sudo ausführt
lecture_file: Datei, die die sudo Erklärung enthält
authenticate: Benötige Standardmäßig Authentifizierung der Benutzer
root_sudo: Der Root kann sudo ausführen
log_host: Protokolliere den Hostnamen im (nicht-syslog) Protokollierungsdatei
log_year: Protokolliere das Jahr im (nicht-syslog) Protokollierungsdatei
shell_noargs: Wenn sudo ohne Argumente aufgerufen wird, starte eine Shell
set_home: Set $HOME to the target user when starting a shell with -s
always_set_home: Always set $HOME to the target user's home directory
path_info: Allow some information gathering to give useful error messages
fqdn: Require fully-qualified hostnames in the sudoers file
insults: Insult the user when they enter an incorrect password
requiretty: Only allow the user to run sudo if they have a tty
env_editor: Visudo will honor the EDITOR environment variable
rootpw: Prompt for root's password, not the users's
runaspw: Prompt for the runas_default user's password, not the users's
targetpw: Prompt for the target user's password, not the users's
use_loginclass: Apply defaults in the target user's login class if there is one
set_logname: Set the LOGNAME and USER environment variables
stay_setuid: Only set the effective uid to the target user, not the real uid
preserve_groups: Don't initialize the group vector to that of the target user
loglinelen: Länge, bis zu der Zeilen in der Logdatei umgebrochen werden (0 für kein Umbruch)
timestamp_timeout: Timeout für den Authentifizierungszeitstempel
passwd_timeout: Passwort-Prompt-Timeout
passwd_tries: Anzahl der Versuche, ein Passwort einzugeben
umask: Umask zu verwenden oder 0777 um user's zu verwenden
logfile: Pfad zur Logdatei
mailerpath: Pfad zum E-Mail-Programm
mailerflags: Flags für das E-Mail-Programm
mailto: Adresse, an die E-Mail gesendet wird
mailfrom: Adresse, von der E-Mail gesendet wird
mailsub: Betreffzeile für E-Mail-Nachrichten
badpass_message: Nachricht für falsches Passwort
timestampdir: Pfad zum Verzeichnis für die Authentifizierungszeitstempel
timestampowner: Besitzer des Verzeichnisses für die Authentifizierungszeitstempel
exempt_group: Benutzer in dieser Gruppe sind von Passwort- und PATH-Anforderungen befreit
passprompt: Standard-Passwort-Prompt
passprompt_override: Wenn gesetzt, überschreibt passprompt den Systemprompt in allen Fällen.
runas_default: Standardbenutzer, als der Befehle ausgeführt werden
secure_path: Wert zum Überschreiben des Benutzers $PATH
editor: Pfad zum Editor für die Verwendung durch visudo
listpw: Wann ein Passwort für den 'list'-Pseudobefehl erforderlich ist
verifypw: Wann ein Passwort für den 'verify'-Pseudobefehl erforderlich ist
noexec: Leere Exec-Funktionen, die in 'noexec_file' enthalten sind, vorladen
noexec_file: Datei, die leere Exec-Funktionen enthält
ignore_local_sudoers: Wenn das LDAP-Verzeichnis aktiv ist, werden lokale sudoers-Dateien ignoriert
closefrom: Dateidescriptoren >= %d werden vor der Ausführung eines Befehls geschlossen
closefrom_override: Wenn gesetzt, können Benutzer den Wert von `closefrom' mit dem -C-Option
setenv: Ermöglichen, dass Benutzer beliebige Umgebungsvariablen setzen
env_reset: Die Umgebung auf eine Standardgruppe von Variablen zurücksetzen
env_check: Umgebungsvariablen, die auf Korrektheit überprüft werden sollen
env_delete: Umgebungsvariablen, die entfernt werden sollen
env_keep: Umgebungsvariablen, die beibehalten werden sollen
role: SELinux-Rolle, die im neuen Sicherheitskontext verwendet wird
type: SELinux-Typ, der im neuen Sicherheitskontext verwendet wird
askpass: Pfad zum askpass-Hilfsprogramm
env_file: Pfad zu sudo-spezifische Umgebungsdatei
sudoers_locale: Locale, die beim Parsen von sudoers verwendet wird
visiblepw: Erlaubt sudo, auch dann ein Passwort abzufragen, wenn es sichtbar wäre
pwfeedback: Bieten Sie visuelle Rückmeldung am Passwort-Eingabefenster, wenn es Benutzer-Eingaben gibt
fast_glob: Verwenden Sie eine schnellere, aber weniger genaue Globbing-Methode, die den Dateisystemzugriff nicht aufruft
umask_override: Der in sudoers spezifizierte umask überschreibt den Benutzer, selbst wenn er weniger restriktiv ist

Das vorherige Kommando mit root-Rechten ausführen

$ sudo !!

Text in einer bestimmten Benutzer-ID bearbeiten

$ sudo -u uggc vi ~www/index.html
//Das Verzeichnis index.html im Unterverzeichnis www im Home-Verzeichnis unter der Benutzer-ID uggc bearbeiten

Aktuelle Berechtigungen auflisten

sudo -l

Versionsinformationen von sudo auflisten

sudo -V

Vollständiges Kommando-Verzeichnis von Linux