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 [02/10/2013 07:00]
smolski [Configuration de sécurité élémentaire]
doc:systeme:sudo [15/07/2021 15:07]
smolski [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 !)) 
 +
 +{{https://​debian-facile.org/​images/​file-R6679d85454aba230d70f7c482a3ada85.png}}
 +===== Important =====
  
 == ATTENTION ! == == ATTENTION ! ==
Ligne 14: 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 20: Ligne 33:
 ===== 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
  
-<note warning>​**DÉCONSEILLÉ** : \\ +//​Qu'​une pluie de choco df leur soit à tous deux prescrit... ​\\ 
-Si vous voulez ouvrir les droits de **sudo** pour **plusieurs utilisateurs** sans les énumérer ici, écrivez : +Quand ce sera possible bien sûr !// ;-) 
-<​file>​Defaults:​All tty_tickets<​/file><​/note>+===== Installation =====
  
 +<code root>​apt-get update && apt-get install sudo</​code>​
  
-===== Configuration pour un utilisateur =====+//Si vous avez plus simple, faite-le savoir !// ;-)
  
-<note tip> +===== Configuration de sudo - visudo =====
-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+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.
  
-==== sudo UN SEUL utilisateur AVEC mot de passwd demandé ====+Taper :
  
-C'est la configuration préconisée pour tous les utilisateurs de sudo débutant.+<file root>​visudo</​file>​
  
-=== Pour la branche stable, soit Squeeze ​===+===== Configuration de sécurité élémentaire =====
  
-Sous la ligne ''​root ALL=(ALL) ALL'',​ écrivez : +==== Droits ​d'exécution à une seule commande ====
-   ​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.+Sous la ligne : 
 +   ​Defaults env_reset
  
-=== Pour les branches testing (Wheezy) et unstable (Sid) ===+Ajoutez : 
 +  Defaults ​       timestamp_timeout=
 +En mettant le timeout à 0, les droits **root** ne seront plus utilisables dès que vous aurez validé l'​exécution de votre commande.
  
-Il est à noter que le fichier /​etc/​sudoers a subi de légers changements pour ces deux branches.+==== Droits d'​exécution ​à un seul user ====
  
-Aussi la ligne : +<note important>//​mon_nom//​ et //​badaboum//​ sont des exemples, il faut les remplacer par le nom de l'user réel.</​note>​ 
-  root ALL=(ALL) ALL+Pour réserver l'​utilisation de sudo à //mon_nom// seulement, écrivez :
  
-devient : +<file config sudo> 
-  root ALL=(ALL:ALL) ALL+Defaults:mon_nom tty_tickets 
 +</​file>​
  
-Celle que l'on écrit ​pour un utilisateur change de la même façonDonc pour l'​utilisateur badamoum ci-haut, elle devient :+Ici, //mon_nom// est le nom que vous utilisez ​pour vous connecter à votre session.
  
-  badaboum ALL=(ALL:​ALL) ALL+<note tip>​Ainsi,​ pour un seul //​utilisateur//,​ il n'est pas nécessaire d'​intégrer ce dernier dans le groupe //​sudo//</​note>​
  
-Dans un terminal utilisateur,​ tapez une commande root :+//Merci à //​**Asmodée**//​ pour cette indication précise !// :-D
  
-   ​$ ​sudo fdisk -l+<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>​
  
-Le passwd de l'//​user// ​est demandénon celui de root :+ 
 +==== 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. 
 + 
 +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 == 
 + 
 +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) : 
 + 
 +nom_user ALL=(ALL) ALL 
 +nom_user 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 ​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 117: 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 ==
  
-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 135: Ligne 180:
  
 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 143: Ligne 185:
  
 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 179: Ligne 221:
 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 202: Ligne 244:
 # 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** :-) 
 + 
 + 
 +===== 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.txt · Dernière modification: 15/07/2021 15:07 par smolski

Pied de page des forums

Propulsé par FluxBB