logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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 14:50]
captnfab [Environnement]
doc:faq:differences-entre-su-et-sudo [06/01/2021 17:32]
captnfab [Différences entre su et sudo]
Ligne 1: Ligne 1:
-====== ​Titre de Votre Tuto ======+====== ​Différences entre su et sudo ======
  
-  * 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 simple administration 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 41: Ligne 41:
 ===== Shell ou pas shell ===== ===== Shell ou pas shell =====
  
-Une première différence entre ces différentes commandes est que certaines ouvrent un //shell// en tant que //​root//, ​alors que d'​autres se contentent d'​exécuter une seule commande avec les droits //root// puis vous ramènent dans votre //shell// utilisateur.+Une première différence entre ces différentes commandes est que certaines ouvrent un //shell// en tant que //​root//, ​dans lequel vous pouvez taper autant de commandes ​que vous voulez et qui seront exécutées avec les droits //root//. D'​autres se contentent d'​exécuter une seule commande avec les droits //root// puis vous ramènent dans votre //shell// utilisateur.
  
-Les méthodes suivantes vous ouvrent un shell, dans lequel vous pouvez taper autant de commande ​que vous voulez, qui seront exécutées ​avec les droits //root//: +On note que chaque commande a sa duale 
-  * se connecter en ''​root''​ depuis le TTY ([Ctrl]+[Alt]+[F1]/​[F2]/​etc. puis entrer ''​ma_commande''​ +| Version ​avec shell interactif | Version one-line | 
-  * ''​su''​ puis entrer ''​ma_commande''​ +su | su -c "​…"​ | 
-  * ''​su -l''​ puis entrer ''​ma_commande''​ +su -l | su -l -c "​…"​ | 
-  * ''​sudo -s''​ puis entrer ''​ma_commande''​ +sudo -s | sudo … | 
-  * ''​sudo -i''​ puis entrer ''​ma_commande''​+| sudo -i | sudo -i … |
  
-Alors que les commandes suivantes ne permettent que d'exécuter une commande ​à la fois : +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.
-  * ''​su -c "​ma_commande"''​ +
-  * ''​su --c "​ma_commande"''​ +
-  * ''​sudo ma_commande''​ +
-  * ''​sudo -i ma_commande''​+
  
 <note info>​Lorsque vous avez plusieurs commandes à taper, ou que vous ne savez pas forcément à l'​avance toutes les commandes que vous avez à taper, privilégiez une commande de la première liste. <note info>​Lorsque vous avez plusieurs commandes à taper, ou que vous ne savez pas forcément à l'​avance toutes les commandes que vous avez à taper, privilégiez une commande de la première liste.
Ligne 100: Ligne 96:
  
 Si un programme s'​attend à être exécuté en //root// avec un PATH de //root//, alors il ne fonctionnera pas si le PATH n'est pas celui de //root//. Si un programme s'​attend à être exécuté en //root// avec un PATH de //root//, alors il ne fonctionnera pas si le PATH n'est pas celui de //root//.
 +
 +En remplaçant ''​ma_commande''​ par ''​sh -c '​printf %s\\n $PATH' '',​ vous pouvez obtenir les différents PATH.
  
 | Méthode utilisée | $PATH | | Méthode utilisée | $PATH |
Ligne 132: Ligne 130:
  
 Voici en exemple ce que j'ai chez moi… Voici en exemple ce que j'ai chez moi…
-<​code>​==>​ su <==+<code=bash>==> su <==
 (gros bazar) (gros bazar)
  
Ligne 186: Ligne 184:
 Vous remarquerez de subtiles différences entre chacun des environnements. Vous remarquerez de subtiles différences entre chacun des environnements.
 ===== Sécurité ===== ===== Sécurité =====
 +Lorsque qu'on souhaite prendre le contrôle d'une machine, on vise bien souvent les droits //root//, mais pas nécessairement.
 +Qui plus est, il est en général nécessaire de d'​abord obtenir un shell utilisateur en guise d'​étape intermédiaire.
 +
 +Si l'on utilise sudo, un attaquant ayant obtenu le mot de passe utilisateur pourra immédiatement devenir root.
 +
 +Si l'on n'​utilise pas sudo, un attaquant ayant obtenu le mot de passe utilisateur devra encore obtenir le mot de passe root, ou trouver un moyen de leurrer l'​utilisateur pour l'​obtenir.
 +Inversement,​ si l'​attaquant a un accès physique à la machine, il lui suffira d'​obtenir le pass root directement,​ sans avoir à trouver le pass utilisateur.
 +
 +Reste qu'en fait, la différence n'est pas si importante que ça. En effet, une fois le mot de passe utilisateur obtenu, il est aisé d'​effacer tous ses fichiers, ou de les chiffrer, ou de les récupérer,​ ou de rajouter des « pièges » pour récupérer ce que l'​utilisateur écrit au clavier.
 +
 +<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>​
 +
 +
 +===== 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>​
doc/faq/differences-entre-su-et-sudo.txt · Dernière modification: 18/06/2021 15:26 par otyugh

Pied de page des forums

Propulsé par FluxBB