Heim > Artikel > System-Tutorial > So viele Leute sind verwirrt über die Verwendung und den Unterschied zwischen root und sudo unter Linux!
In Linux-Systemen gibt es zwei Konzepte, mit denen vielleicht jeder vertraut ist: eines ist der sudo-Befehl und das andere ist das Root-Konto. Mit dem Befehl sudo können wir Befehle mit den höchsten Berechtigungen ausführen. Unter dem Root-Konto verfügen alle Befehle über die höchsten Berechtigungen, was allen Befehlen entspricht, denen standardmäßig sudo hinzugefügt wurde.
Also, Was ist der Unterschied zwischen sudo und root
? Warum empfehlen wir die Verwendung von sudo anstelle der direkten Verwendung des Root-Kontos? In diesem Tutorial erfahren Sie mehr über den Root-Zugriff, den Sudo-Befehl, die Ausführung von Befehlen mit Sudo und den Unterschied zwischen Sudo-Zugriff und Root.root bezieht sich auf das Superuser-Konto in Unix-ähnlichen Systemen wie Linux. Es handelt sich um das privilegierte Konto mit den höchsten Zugriffsrechten auf dem System, das für die Systemadministration verwendet wird. Dieses Root-/Superuser-Konto hat unabhängig vom Kontonamen eine Benutzerkennung (UID) von Null.
Der Root-Benutzer hat die volle Autorität über das gesamte System (Root-Rechte). Es kann beispielsweise Kernteile des Systems ändern, das System aktualisieren, die Systemkonfiguration ändern sowie alle laufenden Systemdienste starten, stoppen und neu starten.
Wenn Sie als Root angemeldet sind (mit su -), ändert sich das Symbol der Terminal-Eingabeaufforderung von
$ echo 'You are in a normal shell'wird
# echo 'This is a root shell'Auf einigen Systemen (wie Ubuntu) ist der Root-Benutzer standardmäßig gesperrt. (Hinweis: Bricklayer wird nicht gesperrt, aber Tencent Cloud wird es standardmäßig sperren.)
sudo
(superuser do) 命令是一个命令行实用程序
Obwohl sudo dem Befehl su etwas ähnelt, unterscheidet er sich darin, dass zur Authentifizierung standardmäßig das Kennwort des Benutzers anstelle des Kennworts des Zielbenutzers erforderlich ist, das su erfordert. Sudo erzeugt auch keine Root-Shell; stattdessen führt es ein Programm oder einen Befehl mit erhöhten Rechten aus, im Gegensatz zu su, das eine Root-Shell erzeugt.
Mit sudo können Systemadministratoren Folgendes tun:
sudo verwendet die standardmäßige Sudoers-Sicherheitsrichtlinie und verwaltet eine spezielle Konfigurationsdatei /etc/sudoers. Mit dieser Datei können Zugriffsberechtigungen und Zeitüberschreitungen bei der Passwortabfrage gesteuert werden.
Hinweis: Sie müssen über erhöhte Berechtigungen verfügen, um die Sudoers-Datei anzuzeigen
Öffnen Sie die Datei /etc/sudoers; sie sollte so aussehen:
# This file MUST be edited with the 'visudo' command as root. # # Please consider adding local content in /etc/sudoers.d/ instead of # directly modifying this file. # # See the man page for details on how to write a sudoers file. # Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/ sbin:/bin" # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL:ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL # See sudoers(5) for more information on "@include" directives: @includedir /etc/sudoers.dDiese Zeile:
root ALL=(ALL:ALL)ALLbedeutet, dass der Root-Benutzer unbegrenzte Berechtigungen hat und jeden Befehl auf dem System ausführen kann.
%sudo ALL=(ALL:ALL)ALLErlauben Sie allen Mitgliedern der Gruppe sudo, einen beliebigen Befehl auszuführen.
注意
Wie aus der ersten Zeile der Datei /etc/sudoers ersichtlich ist:
# This file MUST be edited with the 'visudo' command as rootVersuchen Sie nicht, die sudoers-Datei direkt zu bearbeiten. Verwenden Sie den Befehl visudo mit Root-Rechten.
Die Verwendung von sudo zum Ausführen von Befehlen ist sehr einfach. Fügen Sie einfach sudo vor dem Befehl hinzu:
$ sudo commandIm Allgemeinen werden Sie aufgefordert, ein Passwort einzugeben und die Eingabetaste zu drücken. 🎜
$ sudo command [sudo] password for user:
最小权限原则是一种信息和计算机安全概念,它认为授予程序和用户执行任务所需的最少或最低限度的权限。
以 root 用户登录后,输入到终端的每一条命令都以系统最高权限运行,违反了最小权限原则。像 rm 这样的简单命令可用于删除核心根目录或文件,而不会在意外时提示用户。例如,如果您尝试使用以下命令删除 /etc 之类的根目录:
$ rm -rf /etc
当您以普通用户身份登录时,您将被拒绝许可。当以 root 身份登录时,不会显示任何提示,并且整个文件夹将被删除 – 这很可能会破坏您的系统,因为运行系统所需的特殊配置文件存储在 /etc 目录中。您也可能最终错误地格式化磁盘,并且系统不会提示您。
此缺陷还扩展到以 root 身份运行代码或应用程序;应用程序中的一个小错误可能会删除一些系统文件,因为该应用程序是在最高权限下运行的。
Sudo 提供细粒度的访问控制。它仅向需要它的特定程序授予提升的权限。您知道哪个程序以提升的权限运行,而不是使用 root shell(以 root 权限运行每个命令)。
Sudo 也可以配置为以另一个用户身份运行命令,指定允许哪些用户和组使用 sudo 运行命令,或者通过编辑 sudoers 文件设置以 root 权限运行程序的超时。
因此,不建议使用 root shell 运行命令,因为您破坏系统的机会要高得多。如果您需要更高权限或 root 权限来运行命令,请使用 sudo 确保只有该命令以 root 权限运行。
Das obige ist der detaillierte Inhalt vonSo viele Leute sind verwirrt über die Verwendung und den Unterschied zwischen root und sudo unter Linux!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!