Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format
PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:faq:differences-entre-su-et-sudo [06/01/2021 15:21] captnfab [Shell ou pas shell] |
doc:faq:differences-entre-su-et-sudo [07/01/2021 00:06] captnfab [Authentification et mot de passe] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Titre de Votre Tuto ====== | + | ====== Dois-je utiliser su ou sudo pour lancer mes commandes en root ? ====== |
- | * Objet : Bien comprendre les différences entre su et sudo | + | * Objet : Bien comprendre les différences entre su et sudo dans le contexte d'une administration simple de sa machine |
* Niveau requis : {{tag>débutant}} | * Niveau requis : {{tag>débutant}} | ||
* Commentaires : //Quelle commande utiliser pour passer root et exécuter des tâches d'administration ? // | * Commentaires : //Quelle commande utiliser pour passer root et exécuter des tâches d'administration ? // | ||
Ligne 8: | Ligne 8: | ||
===== Introduction ===== | ===== Introduction ===== | ||
- | Je veux exécuter ''ma_commande'' en //root//, je peux utiliser différents moyens. Mais tous ne se valent pas. | + | Dans la suite, ''ma_commande'' désigne n'importe quelle commande, que ce soit ''apt update'' ou ''rm /root/bla.log''. |
- | Voici les différentes méthodes que nous allons comparer: | + | |
+ | Je veux exécuter ''ma_commande'' en //root//. | ||
+ | |||
+ | Je peux utiliser différents moyens. Mais tous ne se valent pas. Voici les différentes méthodes que nous allons comparer: | ||
* se connecter en ''root'' depuis le TTY ([Ctrl]+[Alt]+[F1]/[F2]/etc. puis entrer ''ma_commande'' | * se connecter en ''root'' depuis le TTY ([Ctrl]+[Alt]+[F1]/[F2]/etc. puis entrer ''ma_commande'' | ||
Ligne 23: | Ligne 26: | ||
===== Authentification et mot de passe ===== | ===== Authentification et mot de passe ===== | ||
+ | ''su'' et ''sudo'' donnent des droits importants, mais avant cela, ils s'assurent que l'utilisateur en a bien le droit. | ||
+ | Le mode d'authentification est paramétrable (voir ''man pam_unix'' et ''man sudoers'' par exemple), mais nous parlerons ici du comportement par défaut. | ||
- | ==== Mot de passe //root// ==== | + | ==== Mot de passe root ==== |
- | Lorsque l'on utilise ''su'' sans spécifier d'utilisateur, c'est implicitement les droits de //root// que l'on cherche à obtenir. Et c'est également le mot de passe de l'utilisateur //root// qui nous est demandé. | + | Lorsque l'on utilise ''su'' sans spécifier d'utilisateur, c'est implicitement les droits de //root// que l'on demande à obtenir. Et c'est également le mot de passe de l'utilisateur //root// qui nous est demandé. |
Dans certains cas, l'utilisateur //root// s'est vu désactiver son mot de passe (c'est le cas par défaut sous ubuntu, ou sous debian si l'on laisse le mot de passe //root// vide lors de l'installation). Dans ce cas, on ne peut ni se connecter en root depuis le TTY, ni taper utiliser une des méthodes ''su'' ci-dessus. | Dans certains cas, l'utilisateur //root// s'est vu désactiver son mot de passe (c'est le cas par défaut sous ubuntu, ou sous debian si l'on laisse le mot de passe //root// vide lors de l'installation). Dans ce cas, on ne peut ni se connecter en root depuis le TTY, ni taper utiliser une des méthodes ''su'' ci-dessus. | ||
Ligne 32: | Ligne 37: | ||
==== Mot de passe ''sudo'' ==== | ==== Mot de passe ''sudo'' ==== | ||
- | Lorsque l'on utilise ''sudo'', c'est (sauf si vous vous êtes amusés à configurer votre fichier ''/etc/sudoers'' différemment) le mot de passe de l'utilisateur courant qui est demandé. | + | Lorsque l'on utilise ''sudo'', c'est le mot de passe de l'utilisateur courant qui est demandé. |
- | Sous debian, par défaut, seuls les utilisateurs membres du groupe ''sudo'' sont autoriser à utiliser la commande ''sudo'' pour obtenir les droits //root//. | + | Sous debian, par défaut, seuls les utilisateurs membres du groupe ''sudo'' sont autorisés à utiliser la commande ''sudo'' pour obtenir les droits //root//. |
En particulier, si vous avez installé Debian sans mettre de mot de passe //root//, le premier utilisateur que vous avez créé a été ajouté automatiquement au groupe ''sudo'' et a donc le droit d'utiliser la commande. | En particulier, si vous avez installé Debian sans mettre de mot de passe //root//, le premier utilisateur que vous avez créé a été ajouté automatiquement au groupe ''sudo'' et a donc le droit d'utiliser la commande. | ||
- | <note warning>Vous pouvez à tout moment ajouter ou retirer un membre du groupe ''sudo''. Attention cependant à ne pas scier la branche sur laquelle vous êtes assis !</note> | + | <note info>Pour savoir à quels groupes vous appartenez, tapez la commande <code=user>groups</code></note> |
+ | |||
+ | <note warning>Vous pouvez à tout moment ajouter ou retirer un membre du groupe ''sudo''. Cette modification nécessite une déconnexion/reconnexion pour être prise en compte. Attention cependant à ne pas scier la branche sur laquelle vous êtes assis !</note> | ||
===== Shell ou pas shell ===== | ===== Shell ou pas shell ===== | ||
Ligne 48: | Ligne 55: | ||
| su -l | su -l -c "…" | | | su -l | su -l -c "…" | | ||
| sudo -s | sudo … | | | sudo -s | sudo … | | ||
- | | sudo -i | sudo -i … " | | + | | sudo -i | sudo -i … | |
L'environnement d'exécution de la commande sera identique dans ces deux cas. La différence étant l'ouverture d'un shell interactif ou non. | L'environnement d'exécution de la commande sera identique dans ces deux cas. La différence étant l'ouverture d'un shell interactif ou non. | ||
Ligne 196: | Ligne 203: | ||
<note info>Donc, la morale de l'histoire, c'est qu'il n'y a pas de grosses grosses différences de sécurité entre les deux (pas de sudo restant //un peu plus sûr// pour une utilisation simple de la machine.) | <note info>Donc, la morale de l'histoire, c'est qu'il n'y a pas de grosses grosses différences de sécurité entre les deux (pas de sudo restant //un peu plus sûr// pour une utilisation simple de la machine.) | ||
En matière de sécurité, le plus gros risque est que l'attaquant réussisse à se connecter à votre compte utilisateur (sans pour autant connaître votre mot de passe), reste à voir comment réduire les possibilités de cela et les implications de sécurité dans ce cas là, mais ceci est une autre histoire.</note> | En matière de sécurité, le plus gros risque est que l'attaquant réussisse à se connecter à votre compte utilisateur (sans pour autant connaître votre mot de passe), reste à voir comment réduire les possibilités de cela et les implications de sécurité dans ce cas là, mais ceci est une autre histoire.</note> | ||
+ | |||
+ | |||
+ | ===== Conclusion ===== | ||
+ | |||
+ | N'utilisez pas ''su'' ou ''su -c''. | ||
+ | |||
+ | Pour le reste: | ||
+ | | Version shell | version one-line | path | pwd | | ||
+ | | ''su -l'' | ''su -l -c "…"'' | root | ''/root'' | | ||
+ | | ''sudo -s'' | ''sudo …'' | root | inchangé | | ||
+ | | ''sudo -i'' | ''sudo -i …'' | root | ''/root'' | | ||
+ | |||
+ | <note warning>''su -'' est identique à ''su -l'', mais cette dernière forme est recommandée par ''man su''.</note> |