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 07:00]
smolski [Configuration de sécurité élémentaire]
doc:systeme:sudo [15/07/2019 09:46]
smolski [Configuration de sécurité élémentaire]
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 ====
  
-  Defaults ​       ​timestamp_timeout=0+Sous la ligne : 
 +   Defaults ​env_reset
  
 +Ajoutez :
 +  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 50: Ligne 103:
  
 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.
 +
 +<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É** : \\ <note warning>​**DÉCONSEILLÉ** : \\
Ligne 55: Ligne 112:
 <​file>​Defaults:​All tty_tickets</​file></​note>​ <​file>​Defaults:​All tty_tickets</​file></​note>​
  
- 
-===== 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 68: Ligne 117:
 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 : 
 +<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//>​ 
 +Et la commande s'​exécute !
  
-Aussi la ligne : +== Reboot ==
-  root ALL=(ALL) ALL+
  
-devient : +Autoriser user à exécuter toutes les commandes via sudo mais que sudo reboot ne demande pas le mot de passe (faire 2 lignes) ​:
-  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 ​:+nom_user ALL=(ALL) ALL 
 +nom_user ALL=(ALL) NOPASSWD/​usr/​sbin/​reboot
  
-  badaboum ALL=(ALL:ALL) ALL +==== UN SEUL utilisateur SANS mot de passwd demandé ====
- +
-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//>​ +
-Et la commande s'​exécute ! +
- +
-==== sudo 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 117: 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 135: 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 143: 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 179: 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 202: 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