Pour les opérations de base - exécution de commandes en tant que root - la différence la plus visible entre sudo et su est que sudo requiert le mot de passe de l'utilisateur appelant (c'est-à-dire votre mot de passe) tandis que su requiert le mot de passe de l'utilisateur cible (c'est-à-dire le mot de passe root). Les implications pour la sécurité ont été largement discutées dans une question précédente: Quelle est la manière la plus sûre d'obtenir les privilèges root: sudo, su ou login? .
Sudo a des fonctionnalités supplémentaires au-delà de su. En particulier, une fois que vous avez le mot de passe d'un utilisateur, vous pouvez exécuter n'importe quelle commande en tant qu'utilisateur. D'un autre côté, sudo peut être configuré pour que l'utilisateur qui l'invoque ne puisse exécuter que des commandes spécifiques comme un autre utilisateur. Cela est possible car sudo ne nécessite aucune authentification (autre que peut-être la confirmation que vous êtes bien en tapant votre mot de passe - mais c'est subtilement différent de l'authentification de votre utilisateur pour une tâche).
Vous modifiez la configuration sudo en exécutant la visudo
commande en tant que root (ne modifiez jamais la configuration directement). Assurez-vous que la variable d'environnement EDITOR
ou VISUAL
est définie sur votre éditeur préféré ou vous pouvez obtenir un éditeur inconnu. La sudoers
page de manuel est un peu laconique mais contient des exemples. Pour permettre à l'utilisateur bob
de s'exécuter /bin/foo
(avec n'importe quel nombre d'arguments) et /bin/bar --safe
(mais pas avec aucun autre argument) en tant que root
, utilisez les lignes suivantes:
bob ALL = (root) /bin/foo
bob ALL = (root) /bin/bar --safe
Gilles 'SO- arrête d'être méchant'
la source
sudo
est une invention génialeapache2ctl graceful
je pense que je préférerais couper mes poignets et en finir.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 poursu
. Vous avez besoin du mot de passe root pour ajouter quelqu'un ausudoers
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: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:
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:
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 commandevisudo
. Cela vérifie que le fichier est légal et vous empêche de le casser accidentellement.la source
sudoers
configuration du fichier. Il peut être configuré pour exiger un mot de passe ou configuré pour ne pas nécessiter de mot de passe.En plus des autres réponses, sudo fournit des fonctionnalités de journalisation afin que vous puissiez garder une trace des commandes qui ont été exécutées et par qui. Ce n'est pas pour des raisons de sécurité, car un utilisateur malveillant qui obtient un accès sudo peut effacer le journal. Il est très utile de comprendre exactement ce que vous ou un autre administrateur avez fait aux yeux bleary à 2 heures du matin la semaine dernière.
la source