La plus grande différence est qu'avec sudo
vous, vous n'avez pas besoin du mot de passe root pour exécuter une commande en tant que root, comme vous le feriez pour su
. Vous avez besoin du mot de passe root pour ajouter quelqu'un au sudoers
fichier mais par la suite, cette personne peut exécuter tout ou partie (si vous l'avez restreint) en tant que root sans avoir besoin d'un mot de passe supplémentaire.
L'autre différence est, comme vous l'avez noté, sudo
permet un contrôle beaucoup plus précis sur les commandes qui peuvent être exécutées.
Pour plus de détails sur le format du sudoers
fichier exécuté man sudoers
. Vous y trouverez des exemples où seules certaines commandes peuvent être exécutées en tant que root. La structure de base de chaque ligne est:
user_list host_list = cmd_list
cmd_list peut inclure des détails sur l'utilisateur vers lequel l'utilisateur réel est autorisé à basculer. Par exemple, vous pouvez autoriser un webmaster à basculer vers wwwroot pour redémarrer apache mais pas à root. Il peut également inclure d'autres options telles que si le mot de passe des utilisateurs est requis avant de changer (c'est la valeur par défaut).
Un exemple de ligne pourrait être:
joe ALL=(ALL) ALL
ce qui signifie: laissez joe exécuter n'importe quelle commande sur n'importe quel hôte en tant qu'utilisateur. Une ligne plus étroite pourrait être:
joe ALL=(operator) /usr/local/ops/
ce qui signifie: laissez joe exécuter n'importe quelle commande dans le répertoire / usr / local / ops en tant qu'utilisateur "opérateur".
Il y a beaucoup d'exemples à la fin de la page de manuel sudoers.
Vous devez éditer /etc/sudoers
avec la commande visudo
. Cela vérifie que le fichier est légal et vous empêche de le casser accidentellement.
sudo
est une invention géniale