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 [02/08/2018 08:05]
smolski [Introduction] Modification de texte des exemples sudo
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. 
 + 
 +==== 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 =====
  
-   # aptitude ​install sudo+<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 !// ;-)
  
 ===== Configuration de sudo - visudo ===== ===== 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.+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.
  
-\\  +Taper :
-Dans un terminal root, taper :+
  
-   # ​visudo+<file root>visudo</​file>​
  
 ===== Configuration de sécurité élémentaire ===== ===== Configuration de sécurité élémentaire =====
  
-Sous la ligne ''​Defaults env_reset''​ ajoutez ​:+==== Droits d'​exécution à une seule commande ==== 
 + 
 +Sous la ligne 
 +   Defaults env_reset 
 + 
 +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 ====
  
 Pour réserver l'​utilisation de sudo à mon_nom seulement, écrivez : Pour réserver l'​utilisation de sudo à mon_nom seulement, écrivez :
Ligne 51: Ligne 106:
 Où mon_nom est le nom que vous utilisez pour vous connecter à votre session. Où mon_nom est le nom que vous utilisez pour vous connecter à votre session.
  
-== DÉCONSEILLÉ : ==+<note tip>​Ainsi,​ 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
 +
 +<note warning>​**DÉCONSEILLÉ** : \\
 Si vous voulez ouvrir les droits de **sudo** pour **plusieurs utilisateurs** sans les énumérer ici, écrivez : Si vous voulez ouvrir les droits de **sudo** pour **plusieurs utilisateurs** sans les énumérer ici, écrivez :
 +<​file>​Defaults:​All tty_tickets</​file></​note>​
  
-  Defaults:​All tty_tickets 
- 
-Et voilà ! :-) 
- 
- 
-===== Configuration pour un utilisateur ===== 
- 
-<note tip> 
-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 
  
 ==== sudo UN SEUL utilisateur AVEC mot de passwd demandé ==== ==== sudo UN SEUL utilisateur AVEC mot de passwd demandé ====
Ligne 72: Ligne 119:
 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.
  
-=== Pour la branche stable, soit Squeeze ===+Sous la ligne : 
 +   ​root ​   ALL=(ALL:ALL) ALL
  
-Sous la ligne ''​root ALL=(ALL) ALL'', ​écrivez : +écrivez : 
-   ​badaboum ALL=(ALL) ALL +   ​badaboum ALL=(ALL:ALL) ALL 
-(**badaboum** ​étant ​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.
  
-=== Pour les branches testing (Wheezy) et unstable (Sid) ===+**Test de la configuration modifiée :**
  
-Il est à noter que le fichier ​/etc/sudoers a subi de légers changements pour ces deux branches.+Tapez une commande root comme celle-ci par exemple : 
 +<file user>​sudo fdisk -l</file>
  
-Aussi la ligne : +Le mot de passe de l'//​user// ​sera alors demandé ​et non plus celui de root :
-  root ALL=(ALL) ALL +
- +
-devient : +
-  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-haut, elle devient : +
- +
-  badaboum ALL=(ALL:​ALL) ALL +
- +
-Dans un terminal utilisateur,​ tapez une commande root : +
- +
-   $ sudo fdisk -l +
- +
-Le passwd ​de l'//​user// ​est demandénon 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é ====+==== 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 123: Ligne 159:
 === 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 172:
  
 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 177:
  
 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 213:
 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 236:
 # 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