Quelle est la différence entre root et sudo?

14

Un utilisateur root peut avoir tous les privilèges. Mais un utilisateur normal peut y accéder comme une racine avec la commande su ou sudo et son propre mot de passe.

Alors quelle est la différence?

Hieu Nguyen
la source

Réponses:

7

La commande su(et sudo) requiert traditionnellement le mot de passe de root . Cependant, vous pouvez configurer sudopour que les utilisateurs ordinaires puissent obtenir les privilèges root avec leur propre mot de passe en les modifiant /etc/sudoers(en tant que root, de préférence avec visudo).

Les distributions Linux modernes préconfigurent le premier utilisateur à pouvoir sudo avec son propre mot de passe. Cela évite une mauvaise configuration accidentelle du système par l'utilisateur et lui permet d'obtenir un contrôle total sans avoir besoin d'un mot de passe root distinct.

phihag
la source
2
Vous devriez utiliser «visudo» au lieu de modifier manuellement / etc / sudoers - la syntaxe sera vérifiée avant l'enregistrement, ce qui pourrait vous éviter des ennuis.
Nicolas
@Nicolas Mis à jour pour inclure cela. Mais je voulais souligner que le fichier est écrit automatiquement par les distributions modernes.
phihag
3

Un utilisateur normal ne peut accéder à root avec sudo que s'il se trouve dans le fichier sudoers (ce qui signifie qu'il est suffisamment fiable pour obtenir des autorisations d'administrateur à la demande). Dans un environnement de production, presque personne ne devrait être sudoer.

Tremmors
la source
3

La sucommande pour changer temporairement une identité à n'importe quel utilisateur sur un système et exécuter de nombreux programmes avec ses autorisations. Il n'est pas nécessaire que ce soit la racine. Si l'utilisateur exécutant sun'est pas la racine, il doit entrer le mot de passe de l'utilisateur dont il veut obtenir l'identité.

La sudocommande consiste à exécuter une commande avec les autorisations de n'importe quel utilisateur. Il n'est pas nécessaire que ce soit aussi la racine. La commande est très configurable et fournit une sorte de contrôle d'accès précis. La saisie de votre propre mot de passe est facultative et configurable. Certaines distributions permettent au premier utilisateur du système de s'exécuter avec sudotout.

Michas
la source
2

Pour ajouter aux réponses ci-dessus,

su user1avec le mot de passe de l'utilisateur doit basculer vos informations d'identification sur user1 jusqu'à ce que vous saisissiez exit su, cela supposera juste root par défaut.

sudocomme mentionné dans d'autres réponses, peut être accordé à des utilisateurs de confiance et à un ensemble restreint de commandes. en outre, sudopeut être configuré pour enregistrer les commandes exécutées. Il s'agit d'un bon moyen de détecter les abus de privilèges.

Lord Loh.
la source
1

Tous les utilisateurs normaux ne peuvent pas utiliser sudo, ils doivent figurer dans le fichier sudoers et vous pouvez contrôler les commandes ou les types de commandes que l'utilisateur peut exécuter. De plus, seuls certains utilisateurs peuvent utiliser su pour basculer vers l'utilisateur root. Normalement, vous n'auriez des autorisations sudo que pour un ensemble limité de commandes et des autorisations su complètes pour une période limitée.

ldg
la source
3
à peu près sûr que tous les utilisateurs peuvent utiliser su, ils auront juste besoin du mot de passe de l'utilisateur vers lequel ils basculent.
Grady Player
1
Traditionnellement, les BSD exigent que l'un soit dans le groupe de roues pour permettre d'utiliser su pour devenir root. Cela peut également être configuré sur Linux, mais ce n'est pas standard.
Jaap Eldering
-2

Seuls les utilisateurs avec des privilèges de super-utilisateur peuvent sudo ou su, les utilisateurs normaux ne peuvent pas. Ceci est configuré dans / etc / sudoers, qui doit toujours être modifié avec visudo.

Les avantages de ce système sont:

  1. Il est facile pour un utilisateur privilégié d'exécuter des commandes en tant que root uniquement en cas de besoin,
  2. rend plus difficile de deviner le nom d'utilisateur racine (par exemple, si un simple bot ssh essayait de se connecter à un système rootserait le premier nom de connexion à deviner).
  3. Plusieurs utilisateurs sur un système partagé peuvent avoir des autorisations root, sans avoir besoin de partager des mots de passe.
dr jimbob
la source