Heim > System-Tutorial > LINUX > Hauptteil

So viele Leute sind verwirrt über die Verwendung und den Unterschied zwischen root und sudo unter Linux!

PHPz
Freigeben: 2024-02-10 14:18:23
nach vorne
1270 Leute haben es durchsucht

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.

Linux 中 root 与 sudo 的用法与区别,居然这么多人搞不清楚!

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.

Was ist 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'
Nach dem Login kopieren

wird

# echo 'This is a root shell'
Nach dem Login kopieren

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.)

Was ist Sudo?

sudo (superuser do) 命令是一个命令行实用程序

, wodurch Benutzer Befehle als Root oder andere Benutzer ausführen können. Es bietet eine effiziente Möglichkeit, bestimmten Benutzern entsprechende Berechtigungen zu erteilen, um bestimmte Systembefehle zu verwenden oder Skripts als Root-Benutzer auszuführen.

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:
  • Gewährt einem Benutzer oder einer Benutzergruppe die Möglichkeit, bestimmte Befehle mit erhöhten Rechten oder Root-Rechten auszuführen.
  • Zeigen Sie mit sudo die Protokolle für die Benutzer-ID jedes Benutzers an.
  • Steuert, welche Befehle Benutzer auf dem Hostsystem verwenden können.

Sudo protokolliert alle ausgeführten Befehle und Parameter in der Datei /var/log/auth.log, die im Fehlerfall analysiert werden kann.

Sudoers-Datei

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.d
Nach dem Login kopieren

Diese Zeile:

root         ALL=(ALL:ALL)ALL
Nach dem Login kopieren

bedeutet, dass der Root-Benutzer unbegrenzte Berechtigungen hat und jeden Befehl auf dem System ausführen kann.

%sudo ALL=(ALL:ALL)ALL
Nach dem Login kopieren

Erlauben Sie allen Mitgliedern der Gruppe sudo, einen beliebigen Befehl auszuführen.

注意

: „%“ in der Sudoers-Datei stellt eine Gruppe dar, keinen Kommentar.

Wie aus der ersten Zeile der Datei /etc/sudoers ersichtlich ist:

# This file MUST be edited with the 'visudo' command as root
Nach dem Login kopieren

Versuchen 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 command
Nach dem Login kopieren

Im Allgemeinen werden Sie aufgefordert, ein Passwort einzugeben und die Eingabetaste zu drücken. 🎜
$ sudo command
[sudo]  password for user:
Nach dem Login kopieren

Sudo 对比 Root

最小权限原则是一种信息和计算机安全概念,它认为授予程序和用户执行任务所需的最少或最低限度的权限。

以 root 用户登录后,输入到终端的每一条命令都以系统最高权限运行,违反了最小权限原则。像 rm 这样的简单命令可用于删除核心根目录或文件,而不会在意外时提示用户。例如,如果您尝试使用以下命令删除 /etc 之类的根目录:

$ rm -rf /etc
Nach dem Login kopieren

当您以普通用户身份登录时,您将被拒绝许可。当以 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!

Quelle:lxlinux.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage