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:systeme:sudo [02/10/2013 06:56]
smolski [sudo]
doc:systeme:sudo [15/07/2019 09:46]
smolski configuration de la commande reboot
Ligne 1: Ligne 1:
 ====== sudo ====== ====== sudo ======
 +
 +  * Objet : sudo
 +  * 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à !]] :-)
 +  * Suivi : {{tag>​à-tester}}
 +    * Création par [[user>​smolski]] le 27/11/2012
 +    * 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 !)) 
 +
 +===== Important =====
  
 == ATTENTION ! == == ATTENTION ! ==
Ligne 14: Ligne 25:
 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 !+De toute façon mieux vaut **privilégier** [[:​doc:​systeme:​su | la commande su]] chaque fois que cela est possible !
  
  
Ligne 20: Ligne 31:
 ===== Introduction ===== ===== Introduction =====
  
-Voilà un logiciel permettant de lancer ​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.
  
-===== Installation =====+==== Utilisation de sudo ====
  
-   # aptitude install ​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.
  
-Si vous avez plus simplefaite-le savoir ! ;-)+Pour exécuter une expression du shell avec sudoil faut spécifier un shell comme commande et l'​expression comme paramètre de celle-ci.
  
-===== Configuration de sudo - visudo =====+=== Exemples : ===
  
-Passer __obligatoirement__ par la commande ​**visudo** pour configurer sudo. L'​utilitaire visudo vérifie la syntaxe du fichier /etc/sudoers avant d'​enregistrer celui-ci.+<code user>​sudo ​commande ​fichier</code> 
 +est interprété en distinguant les arguments (ici la commande de son application) comme :
  
-\\  +[sudo //​lacommande//​] > [//​lefichier//​]
-Dans un terminal root, taper :+
  
-   # visudo+et **NON** comme deux ensembles composés de :
  
-===== Configuration de sécurité élémentaire =====+[sudo] [//​lacommande//​ > //​lefichier//​]
  
-Sous la ligne ''​Defaults env_reset''​ ajoutez :+<note important>​c'est donc **le shell de l'utilisateur** courant qui écrit dans fichier, et non pas **le shell de root**.</​note>​
  
-  Defaults ​       timestamp_timeout=0+Dans la même veine : 
 +<code user>​sudo commande1 && commande2</​code>​ 
 +est interprété comme :
  
-En mettant le timeout à 0, les droits **root** ne seront plus utilisables dès que vous aurez validé l'​exécution de votre commande.+[sudo //​lacommande1//​] && [//​lacommande2//​]
  
-Pour réserver l'​utilisation de sudo à mon_nom seulement, écrivez :+**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>​
  
-   ​Defaults:mon_nom tty_tickets+==== Remerciements et liens ====
  
-Où mon_nom est le nom que vous utilisez pour vous connecter ​à votre session.+Merci à **Walker29** et **raleur** pour avoir initié ces précisions sur le forum là : 
 +  * https://​debian-facile.org/​viewtopic.php?​pid=242982#​p242982
  
-== DÉCONSEILLÉ : ==+//​Qu'​une pluie de choco df leur soit à tous deux prescrit... \\ 
 +Quand ce sera possible bien sûr !// ;-) 
 +===== Installation =====
  
-Si vous voulez ouvrir les droits de **sudo** pour **plusieurs utilisateurs** sans les énumérer ici, écrivez :+<code root>​apt-get update && apt-get install ​sudo</​code>​
  
-  Defaults:​All tty_tickets+//Si vous avez plus simple, faite-le savoir !// ;-)
  
-Et voilà ! :-)+===== Configuration de sudo visudo =====
  
 +Passer __obligatoirement__ par la commande **visudo** pour configurer sudo. L'​utilitaire visudo vérifie la syntaxe du fichier ''/​etc/​sudoers''​ avant d'​enregistrer celui-ci.
  
-===== Configuration pour un utilisateur =====+Taper :
  
-<note tip> +<file root>visudo</file>
-Pour un seul //​utilisateur//,​ il n'est pas nécessaire d'​intégrer ce dernier dans le groupe //sudo// +
-</note>+
  
-//Merci à //​**Asmodée**//​ pour cette indication précise !// :-D+===== Configuration de sécurité élémentaire =====
  
-==== sudo UN SEUL utilisateur AVEC mot de passwd demandé ​====+==== Droits d'​exécution à une seule commande ​====
  
-C'​est ​la configuration préconisée pour tous les utilisateurs de sudo débutant.+Sous la ligne : 
 +   ​Defaults env_reset
  
-=== Pour la branche stablesoit Squeeze ===+Ajoutez : 
 +  Defaults ​       timestamp_timeout=
 +En mettant le timeout à 0les droits **root** ne seront plus utilisables dès que vous aurez validé l'​exécution de votre commande.
  
-Sous la ligne ''​root ALL=(ALL) ALL'',​ écrivez : +==== Droits ​d'exécution à un seul user ====
-   ​badaboum ALL=(ALL) ALL +
-(**badaboum** étant votre nom d'utilisateur **mon_nom**,​ par exemple...)+
  
-Ainsi, **badaboum** sera le seul //​utilisateur//​ autorisé à se servir ​de la commande **sudo** dans un terminal.+Pour réserver l'​utilisation ​de sudo à mon_nom seulement, écrivez :
  
-=== Pour les branches testing (Wheezy) et unstable (Sid) ===+   ​Defaults:​mon_nom tty_tickets
  
-Il est à noter que le fichier /​etc/​sudoers a subi de légers changements ​pour ces deux branches.+Où mon_nom ​est le nom que vous utilisez ​pour vous connecter à votre session.
  
-Aussi la ligne : +<note tip>​Ainsi,​ pour un seul //​utilisateur//,​ il n'est pas nécessaire d'​intégrer ce dernier dans le groupe //​sudo//</​note>​
-  root ALL=(ALL) ALL+
  
-devient ​: +//Merci à //​**Asmodée**//​ pour cette indication précise !// :-D
-  root ALL=(ALL:​ALL) ALL+
  
-Celle que l'on écrit pour un utilisateur change ​de la même façon. Donc pour l'​utilisateur badamoum ci-hautelle devient ​:+<note warning>​**DÉCONSEILLÉ** : \\ 
 +Si vous voulez ouvrir les droits ​de **sudo** ​pour **plusieurs utilisateurs** sans les énumérer iciécrivez : 
 +<​file>​Defaults:All tty_tickets</​file></​note>​
  
-  badaboum ALL=(ALL:​ALL) ALL 
  
-Dans un terminal ​utilisateur, tapez une commande root :+==== sudo UN SEUL utilisateur ​AVEC mot de passwd demandé ====
  
-   sudo fdisk -l+C'est la configuration préconisée pour tous les utilisateurs de sudo débutant. 
 + 
 +Sous la ligne : 
 +   ​root ​   ALL=(ALL:​ALL) ALL 
 +écrivez : 
 +   ​badaboum ALL=(ALL:​ALL) ALL 
 +(**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. 
 + 
 +== Test de la configuration modifiée ==
  
-Le passwd ​de l'//​user// ​est demandénon celui de root :+Tapez une commande root comme celle-ci par exemple : 
 +<code user>​sudo fdisk -l</​code>​ 
 +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 !
  
-==== sudo UN SEUL utilisateur SANS mot de passwd demandé ====+== Reboot ​== 
 + 
 +Autoriser user à exécuter toutes les commandes via sudo mais que sudo reboot ne demande pas le mot de passe (faire 2 lignes) : 
 + 
 +adrien ALL=(ALL) ALL 
 +adrien ALL=(ALL) NOPASSWD: /​usr/​sbin/​reboot 
 + 
 +==== UN SEUL utilisateur SANS mot de passwd demandé ====
  
 <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 l'​usage du **super-utilisateur** et non de **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 121: Ligne 158:
 À 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 ==
  
-Dans un terminal user, tapez une commande root :+Tapez une commande ​**root** mais sous votre **user** ainsi : 
 +<file user>​sudo fdisk -l</​file>​
  
-   $ sudo fdisk -l+<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 =====
  
-==== sudo PLUSIEURS utilisateur AVEC mot de passwd demandé ===+==== PLUSIEURS utilisateur AVEC mot de passwd demandé ===
  
 Sous la ligne : Sous la ligne :
Ligne 139: Ligne 174:
  
 Décommentez (ou rédigez) cette commande : Décommentez (ou rédigez) cette commande :
-   %sudo ALL=(ALL) ALL 
- 
-ou, selon votre situation : 
   %sudo ALL=(ALL:​ALL) ALL   %sudo ALL=(ALL:​ALL) ALL
  
Ligne 147: Ligne 179:
  
 Mettons que vous ayez un pote... un vrai hein... nommé //​ploumploum//​ par exemple. Pour l'​ajouter à la commande sudo, il suffira de taper : Mettons que vous ayez un pote... un vrai hein... nommé //​ploumploum//​ par exemple. Pour l'​ajouter à la commande sudo, il suffira de taper :
-   # ​adduser ploumploum sudo+<file root>adduser ploumploum sudo</​file>​
  
 Et il y sera pareillement maintenant ! Et il y sera pareillement maintenant !
  
 On met la petite soeurette //tagada// ? \\ On met la petite soeurette //tagada// ? \\
-On le fait ainsi : +Alors on le fait ainsi : 
-   # adduser tagada sudo+<file root>adduser tagada sudo</​file>​
  
 Je vous laisse ajouter l'user //​tsointsoin//​ si vous le voulez bien... ;-) Je vous laisse ajouter l'user //​tsointsoin//​ si vous le voulez bien... ;-)
  
-//Ce tuto est initié ​sous la musique ​de captnfab...//+//Ce tuto est illustré ​sous la célèbre ​musique ​du captnfab ​://
    ​ploumploum badaboum tagada tsointsoin...    ​ploumploum badaboum tagada tsointsoin...
  
Ligne 183: Ligne 215:
 On veut donner à deux utilisateurs le droit d'​installer/​enlever des paquets et de pouvoir éteindre/​redémarrer le système. On veut donner à deux utilisateurs le droit d'​installer/​enlever des paquets et de pouvoir éteindre/​redémarrer le système.
  
-<​note>​Le fichier /​etc/​sudoers ci-dessous n'est pas complet. Seul les éléments illustrant cet exemple ont été mis en évidence.</​note>​+<​note>​Le fichier ​''​/​etc/​sudoers'' ​ci-dessous n'est pas complet. Seul les éléments illustrant cet exemple ont été mis en évidence.</​note>​
  
 Pour ce faire, on éditera le fichier /​etc/​sudoers ainsi : Pour ce faire, on éditera le fichier /​etc/​sudoers ainsi :
-<code> +<file root>visudo</file> 
-/etc/sudoers+<​file>​
 # #
 # This file MUST be edited with the '​visudo'​ command as root. # This file MUST be edited with the '​visudo'​ command as root.
Ligne 206: Ligne 238:
 # redémarrer/​éteindre le système. # redémarrer/​éteindre le système.
 MESADMINS ALL = ETEINDRE, PAQUETS MESADMINS ALL = ETEINDRE, PAQUETS
-</code>+</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** :-)
 ===== Lien et remerciements ===== ===== Lien et remerciements =====
  
doc/systeme/sudo.txt · Dernière modification: 15/07/2021 15:07 par smolski

Pied de page des forums

Propulsé par FluxBB