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
doc:systeme:sudo [12/03/2015 16:20]
milou [sudo]
doc:systeme:sudo [15/07/2021 15:07] (Version actuelle)
smolski [sudo]
Ligne 3: Ligne 3:
   * Objet : sudo   * Objet : sudo
   * Niveau requis :​{{tag>​débutant avisé}}   * Niveau requis :​{{tag>​débutant avisé}}
 +  * Commentaires : //logiciel de sécurisation des terminaux//
   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-)   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-)
-  ​* Commentaires : //logiciel de sécurisation des terminaux là// +  * Suivi : {{tag>​à-tester}} 
-  ​* Suivi :  +    * Création par [[user>smolski]] le 27/11/2012
-    * Création par [[smolski]] le 27/11/2012+
     * Testé par .... le ....     * Testé par .... le ....
   * Commentaires sur le forum : [[https://​debian-facile.org/​viewtopic.php?​id=1698 |C'est ici]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))    * Commentaires sur le forum : [[https://​debian-facile.org/​viewtopic.php?​id=1698 |C'est ici]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) 
  
 +{{https://​debian-facile.org/​images/​file-R6679d85454aba230d70f7c482a3ada85.png}}
 ===== Important ===== ===== Important =====
  
Ligne 25: Ligne 26:
 Pour éviter cet inconvénient,​ porte ouverte à l'​infection par des virus et des vers, veillez à configurer votre sudo selon le paragraphe : **[[doc:​systeme:​sudo#​configuration_de_securite_elementaire | Configuration de sécurité élémentaire]]** Pour éviter cet inconvénient,​ porte ouverte à l'​infection par des virus et des vers, veillez à configurer votre sudo selon le paragraphe : **[[doc:​systeme:​sudo#​configuration_de_securite_elementaire | Configuration de sécurité élémentaire]]**
  
-De toute façon mieux vaut **privilégier** [[:​doc:​systeme:​su | la commande su]] chaque fois que cela est possible !+<note important>​ 
 +De toute façon mieux vaut **privilégier** [[:​doc:​systeme:​su | la commande su]] chaque fois que cela est possible !</​note>​
  
  
Ligne 33: Ligne 35:
 Voilà un logiciel permettant de lancer **[[doc:​systeme:​superutilisateur | des commandes root]]** en maintenant un terminal **user** ouvert. Voilà un logiciel permettant de lancer **[[doc:​systeme:​superutilisateur | des commandes root]]** en maintenant un terminal **user** ouvert.
  
 +==== Utilisation de sudo ====
 +
 +<note tip>Sudo lui-même prend comme argument **une commande et ses paramètres**,​ pas une expression du shell.</​note>​
 +Quand on utilise sudo, il est important de bien comprendre comment fonctionnent le [[doc:​programmation:​shell:​shell|shell]] et [[doc:​programmation:​shell:​regexp|ses opérateurs de redirection et de condition]]. \\
 +Pour le shell, la commande passée à sudo et **elle seule**, (pas les //​opérateurs//​ donc) est vue comme un argument du programme sudo.
 +
 +Pour exécuter une expression du shell avec sudo, il faut spécifier un shell comme commande et l'​expression comme paramètre de celle-ci.
 +
 +=== Exemples : ===
 +
 +<code user>​sudo commande > fichier</​code>​
 +est interprété en distinguant les arguments (ici la commande de son application) comme :
 +
 +[sudo //​lacommande//​] > [//​lefichier//​]
 +
 +et **NON** comme deux ensembles composés de :
 +
 +[sudo] [//​lacommande//​ > //​lefichier//​]
 +
 +<note important>​c'​est donc **le shell de l'​utilisateur** courant qui écrit dans fichier, et non pas **le shell de root**.</​note>​
 +
 +Dans la même veine :
 +<code user>​sudo commande1 && commande2</​code>​
 +est interprété comme :
 +
 +[sudo //​lacommande1//​] && [//​lacommande2//​]
 +
 +**sans appliquer le sudo** sur //​lacommande2//​ donc.
 +<​note>​Dans les exemples ci-dessus les crochets servent à visualiser la priorité d'​exécution. \\
 +Les expressions résultantes appliquées en copie/colle ne seront donc pas valides. LOL</​note>​
 +
 +==== Remerciements et liens : ====
 +
 +Merci à **Walker29** et **raleur** pour avoir initié ces précisions sur le forum là :
 +  * https://​debian-facile.org/​viewtopic.php?​pid=242982#​p242982
 +
 +//​Qu'​une pluie de choco df leur soit à tous deux prescrit... \\
 +Quand ce sera possible bien sûr !// ;-)
 ===== Installation ===== ===== Installation =====
  
-<file root>aptitude ​install sudo</file>+<code root>apt-get update && apt-get ​install sudo</code>
  
 //Si vous avez plus simple, faite-le savoir !// ;-) //Si vous avez plus simple, faite-le savoir !// ;-)
Ligne 55: Ligne 95:
  
 Ajoutez : Ajoutez :
- 
   Defaults ​       timestamp_timeout=0   Defaults ​       timestamp_timeout=0
- 
 En mettant le timeout à 0, les droits **root** ne seront plus utilisables dès que vous aurez validé l'​exécution de votre commande. En mettant le timeout à 0, les droits **root** ne seront plus utilisables dès que vous aurez validé l'​exécution de votre commande.
  
 ==== Droits d'​exécution à un seul user ==== ==== Droits d'​exécution à un seul user ====
  
-Pour réserver l'​utilisation de sudo à mon_nom seulement, écrivez :+<note important>//​mon_nom//​ et //​badaboum//​ sont des exemples, il faut les remplacer par le nom de l'user réel.</​note>​ 
 +Pour réserver l'​utilisation de sudo à //mon_nom// seulement, écrivez :
  
-   Defaults:​mon_nom tty_tickets+<file config sudo> 
 +Defaults:​mon_nom tty_tickets 
 +</​file>​
  
-Où mon_nom est le nom que vous utilisez pour vous connecter à votre session.+Ici, //mon_nom// est le nom que vous utilisez pour vous connecter à votre session.
  
 <note tip>​Ainsi,​ pour un seul //​utilisateur//,​ il n'est pas nécessaire d'​intégrer ce dernier dans le groupe //​sudo//</​note>​ <note tip>​Ainsi,​ pour un seul //​utilisateur//,​ il n'est pas nécessaire d'​intégrer ce dernier dans le groupe //​sudo//</​note>​
Ligne 79: Ligne 120:
 ==== sudo UN SEUL utilisateur AVEC mot de passwd demandé ==== ==== sudo UN SEUL utilisateur AVEC mot de passwd demandé ====
  
 +<note important>//​mon_nom//​ et //​badaboum//​ sont des exemples, il faut les remplacer par le nom de l'user réel.</​note>​
 C'est la configuration préconisée pour tous les utilisateurs de sudo débutant. C'est la configuration préconisée pour tous les utilisateurs de sudo débutant.
  
 Sous la ligne : Sous la ligne :
    ​root ​   ALL=(ALL:​ALL) ALL    ​root ​   ALL=(ALL:​ALL) ALL
- 
 écrivez : écrivez :
    ​badaboum ALL=(ALL:​ALL) ALL    ​badaboum ALL=(ALL:​ALL) ALL
- +(**badaboum** illustrant ici votre nom d'​utilisateur **mon_nom**,​ par exemple...) ​\\
-(**badaboum** illustrant ici votre nom d'​utilisateur **mon_nom**,​ par exemple...) +
 Ainsi, **badaboum** sera le seul //​utilisateur//​ autorisé à se servir de la commande **sudo** dans un terminal. Ainsi, **badaboum** sera le seul //​utilisateur//​ autorisé à se servir de la commande **sudo** dans un terminal.
  
-**Test de la configuration modifiée ​:**+== Test de la configuration modifiée ​==
  
 Tapez une commande root comme celle-ci par exemple : Tapez une commande root comme celle-ci par exemple :
-<file user>​sudo fdisk -l</file> +<code user>​sudo fdisk -l</code>
 Le mot de passe de l'//​user//​ sera alors demandé et non plus celui de root : Le mot de passe de l'//​user//​ sera alors demandé et non plus celui de root :
    ​[sudo] password for badaboum: <//Taper ici le passwd de cet user//>    ​[sudo] password for badaboum: <//Taper ici le passwd de cet user//>
 Et la commande s'​exécute ! Et la commande s'​exécute !
 +
 +== Reboot ==
 +
 +Autoriser user à exécuter toutes les commandes via sudo mais que sudo reboot ne demande pas le mot de passe (faire 2 lignes) :
 +
 +nom_user ALL=(ALL) ALL
 +nom_user ALL=(ALL) NOPASSWD: /​usr/​sbin/​reboot
  
 ==== UN SEUL utilisateur SANS mot de passwd demandé ==== ==== UN SEUL utilisateur SANS mot de passwd demandé ====
Ligne 104: Ligne 149:
 <note warning> <note warning>
 **Ceci est une utilisation réservée :** **Ceci est une utilisation réservée :**
-</​note>​+
   * aux machines __non connectées__ sur la toile ou dont le serveur proxy intermédiaire est configuré soigneusement par un EXPERT.   * aux machines __non connectées__ sur la toile ou dont le serveur proxy intermédiaire est configuré soigneusement par un EXPERT.
   * aux EXPERTS, sachant protéger leurs machines par des configurations personnelles en amont.   * aux EXPERTS, sachant protéger leurs machines par des configurations personnelles en amont.
-  * aux EXPERTS couvrant des tâches d'​Administration exigeant ​l'​usage du **super-utilisateur** ​et non de **root**. Un usage particulier de [[:​doc:​systeme:​kvm|KVM - Fork de Qemu]] par exemple...+  * aux EXPERTS couvrant des tâches d'​Administration exigeant ​les privilèges ​**super-utilisateur** ​pour certaines commandes uniquement ​non d'un accès ​**root**. Un usage particulier de [[:​doc:​systeme:​kvm|KVM - Fork de Qemu]] par exemple...
  
-voir : [[:​doc:​reseau:​iptables|iptable]] et autres sécurités évoluées.+voir : [[:​doc:​reseau:​iptables|iptable]] et autres sécurités évoluées.</​note>​
  
 Sous la ligne ''​root ALL=(ALL) ALL'',​ écrivez seulement : Sous la ligne ''​root ALL=(ALL) ALL'',​ écrivez seulement :
Ligne 119: Ligne 164:
 À partir de maintenant, vous pouvez quitter le shell //root// et faire le reste sous votre //nom// avec **sudo** sans plus taper de mot de passe. À partir de maintenant, vous pouvez quitter le shell //root// et faire le reste sous votre //nom// avec **sudo** sans plus taper de mot de passe.
  
-=== Exemple ​: ===+== Exemple ==
  
 Tapez une commande **root** mais sous votre **user** ainsi : Tapez une commande **root** mais sous votre **user** ainsi :
Ligne 125: Ligne 170:
  
 <note important>​Et la commande s'​exécute sans demande de passwd !</​note>​ <note important>​Et la commande s'​exécute sans demande de passwd !</​note>​
 +
  
 ===== Configuration pour plusieurs utilisateurs ===== ===== Configuration pour plusieurs utilisateurs =====
Ligne 199: Ligne 245:
 MESADMINS ALL = ETEINDRE, PAQUETS MESADMINS ALL = ETEINDRE, PAQUETS
 </​file>​ </​file>​
 +
 +=== tâche cron et sudo ===
 +
 +utiliser sudo dans une tâche cron, par nature non interactive,​ est une aberration. Si la tâche doit s'​exécuter avec les privilèges root, il faut la créer avec root. Merci **raleur** :-)
 +
 +
 +===== Passer root =====
 +
 +On peut aussi [[doc:​systeme:​superutilisateur|passer root]] avec sudo en utilisant l'​option -i ainsi:
 +<code user>​sudo -i</​code>​
 +Le passwd de l'user est réclamé et l'on devient Superutilisateur sur son système. \\
 +Pour quitter ce privilège, utiliser le raccourci clavier : \\
 +''​Ctrl d''​
  
 ===== Lien et remerciements ===== ===== Lien et remerciements =====
doc/systeme/sudo.1426173659.txt.gz · Dernière modification: 12/03/2015 16:20 par milou

Pied de page des forums

Propulsé par FluxBB