Quelle est la différence entre la commande sudo
et su
? Pourquoi OS X les gère-t-il différemment de Linux?
Quelle est la différence entre la commande sudo
et su
? Pourquoi OS X les gère-t-il différemment de Linux?
Réponses:
OS X gère sudo
et su
identique à Linux.
sudo
est une commande qui, sans aucune option supplémentaire, exécutera une commande en tant que root. Par exemple:
% touch /newfile
touch: /newfile: Permission denied
% ls -l /newfile
ls: /newfile: No such file or directory
% sudo touch /newfile
% ls -l /newfile
-rw-r--r-- 1 root wheel 0 Apr 27 11:45 /newfile
su
d'autre part, basculera l'utilisateur actuel vers root (encore une fois sans aucune commande supplémentaire). Dans l'exemple ci-dessous, je dois exécuter sudo su
, car je ne connais pas le mot de passe root de mon système:
% whoami
alake
% sudo su
$ whoami
root
La principale différence entre sudo
et su
est sudo
exécute une commande en tant que root, tandis que su
vous rend root. Tout comme les autres utilitaires de ligne de commande, il existe un certain nombre de façons alternatives d'utiliser les deux sudo
et su
, si vous êtes intéressé, vous pouvez toujours exécuter man <command>
par exemple. man sudo
pour obtenir plus d'informations.
sudo
peut être un peu comme super user and do
. Comme point supplémentaire, sous OS X, une fois que vous vous êtes authentifié avec succès, vous pouvez ensuite utiliser sudo sans mot de passe pendant une courte période (5 minutes par défaut, sauf en cas de substitution sudoers
), après quoi vous devrez taper à nouveau le mot de passe.
sudo su -lm _www
vous permettra d'avoir comme shell que si l'utilisateur du serveur web (en exécutant la commande en tant que root, comme il n'a pas de mot de passe valide)
sudo
c'est un utilitaire assez robuste et couvrir même des fonctionnalités de base ici finirait par confondre ou submerger le public cible à la recherche d'une différenciation entre sudo
et su
.
sudo -s
exécute le shell ("vous fait root") et su -c command
exécute la commande en tant que root.
sudo
. De plus, vous ne pouvez pas le faire su -c command
par défaut sur OS X, car vous ne connaissez pas le mot de passe de root. Vous pouvez cependant sudo su
modifier le mot de passe su -c command
. Je pense que la question a été répondue, et il n'y avait pas besoin d'approfondir les utilisations alternatives de sudo et su. Cependant, je mettrai à jour le message pour les curieux.