Maison  >  Article  >  Tutoriel système  >  Tant de gens sont confus quant à l’utilisation et à la différence entre root et sudo sous Linux !

Tant de gens sont confus quant à l’utilisation et à la différence entre root et sudo sous Linux !

PHPz
PHPzavant
2024-02-10 14:18:231187parcourir

Dans les systèmes Linux, il existe deux concepts que tout le monde connaît peut-être, l'un est la commande sudo et l'autre est le compte root. La commande sudo nous permet d'exécuter des commandes avec les autorisations les plus élevées. Sous le compte root, toutes les commandes ont les autorisations les plus élevées, ce qui équivaut à toutes les commandes auxquelles sudo est ajouté par défaut.

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

Alors, Quelle est la différence entre sudo et root

 ? Pourquoi recommandons-nous d'utiliser sudo au lieu d'utiliser directement le compte root ? Dans ce didacticiel, vous découvrirez l'accès root, la commande sudo, comment exécuter des commandes à l'aide de sudo et la différence entre l'accès sudo et root.

Qu'est-ce que la racine ?

root fait référence au compte superutilisateur dans les systèmes de type Unix tels que Linux. Il s'agit du compte privilégié disposant des droits d'accès les plus élevés sur le système utilisé pour l'administration du système. Ce compte root/superutilisateur a un identifiant utilisateur (UID) de zéro, quel que soit le nom du compte.

L'utilisateur root a l'autorité totale sur l'ensemble du système (privilèges root). Il peut effectuer des tâches telles que modifier des parties essentielles du système, mettre à niveau le système, modifier la configuration du système et démarrer, arrêter et redémarrer tous les services système en cours d'exécution.

Lorsque vous êtes connecté en tant que root (en utilisant su -), le symbole d'invite de commande du terminal change de

$ echo 'You are in a normal shell'

devient

# echo 'This is a root shell'

Sur certains systèmes (comme Ubuntu), l'utilisateur root est verrouillé par défaut. (Remarque : Bricklayer ne sera pas verrouillé, mais Tencent Cloud le verrouillera par défaut).

Qu'est-ce que sudo ?

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

, qui permet aux utilisateurs d'exécuter des commandes en tant qu'utilisateur root ou autre. Il fournit un moyen efficace d'accorder les autorisations appropriées à certains utilisateurs pour utiliser des commandes système spécifiques ou exécuter des scripts en tant qu'utilisateur root.

Bien que quelque peu similaire à la commande su, sudo diffère en ce qu'elle nécessite par défaut le mot de passe de l'utilisateur pour l'authentification, au lieu du mot de passe de l'utilisateur cible requis par su. Sudo ne génère pas non plus de shell racine ; à la place, il exécute un programme ou une commande avec des privilèges élevés, contrairement à su, qui génère un shell racine.

En utilisant sudo, les administrateurs système peuvent effectuer les opérations suivantes :
  • Accorde à un utilisateur ou à un groupe d'utilisateurs la possibilité d'exécuter certaines commandes avec des privilèges élevés ou root.
  • Affichez les journaux pour l'ID utilisateur de chaque utilisateur à l'aide de sudo.
  • Contrôle les commandes que les utilisateurs peuvent utiliser sur le système hôte.

Sudo enregistre toutes les commandes et paramètres exécutés dans le fichier /var/log/auth.log, qui peut être analysé en cas d'échec.

fichier sudoers

sudo utilise la politique de sécurité sudoers par défaut et maintient un fichier de configuration spécial /etc/sudoers. Ce fichier peut être utilisé pour contrôler les autorisations d'accès et les délais d'expiration des invites de mot de passe.

Remarque : vous devez disposer d'autorisations élevées pour afficher le fichier sudoers

Ouvrez le fichier /etc/sudoers ; il devrait ressembler à ceci :

# 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

Cette ligne :

root         ALL=(ALL:ALL)ALL

signifie que l'utilisateur root dispose d'autorisations illimitées et peut exécuter n'importe quelle commande sur le système.

%sudo ALL=(ALL:ALL)ALL

Autorisez tous les membres du groupe sudo à exécuter n'importe quelle commande.

注意

 : '%' dans le fichier sudoers représente un groupe, pas un commentaire.

Comme le montre la première ligne du fichier /etc/sudoers :

# This file MUST be edited with the 'visudo' command as root

N'essayez pas de modifier directement le fichier sudoers. Utilisez la commande visudo avec les privilèges root.

Utiliser sudo pour exécuter des commandes est très simple, il suffit d'ajouter sudo devant la commande :

$ sudo command

De manière générale, vous serez invité à saisir un mot de passe. Saisissez le mot de passe et appuyez sur Entrée. 🎜
$ sudo command
[sudo]  password for user:

Sudo 对比 Root

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

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

$ rm -rf /etc

当您以普通用户身份登录时,您将被拒绝许可。当以 root 身份登录时,不会显示任何提示,并且整个文件夹将被删除 – 这很可能会破坏您的系统,因为运行系统所需的特殊配置文件存储在 /etc 目录中。您也可能最终错误地格式化磁盘,并且系统不会提示您。

此缺陷还扩展到以 root 身份运行代码或应用程序;应用程序中的一个小错误可能会删除一些系统文件,因为该应用程序是在最高权限下运行的。

Sudo 提供细粒度的访问控制。它仅向需要它的特定程序授予提升的权限。您知道哪个程序以提升的权限运行,而不是使用 root shell(以 root 权限运行每个命令)。

Sudo 也可以配置为以另一个用户身份运行命令,指定允许哪些用户和组使用 sudo 运行命令,或者通过编辑 sudoers 文件设置以 root 权限运行程序的超时。

因此,不建议使用 root shell 运行命令,因为您破坏系统的机会要高得多。如果您需要更高权限或 root 权限来运行命令,请使用 sudo 确保只有该命令以 root 权限运行。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer