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 [13/04/2015 13:32]
milou [sudo]
doc:systeme:sudo [11/09/2019 12:32] (Version actuelle)
captnfab [Configuration de sécurité élémentaire]
Ligne 33: Ligne 33:
 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 =====
  
-<code root>​apt-get install sudo</​code>​+<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 93:
  
 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.
  
Ligne 83: Ligne 119:
 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 143:
 <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 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 ==
  
 Tapez une commande **root** mais sous votre **user** ainsi : Tapez une commande **root** mais sous votre **user** ainsi :
Ligne 125: Ligne 164:
  
 <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 200: Ligne 240:
 </​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** :-)
 ===== Lien et remerciements ===== ===== Lien et remerciements =====
  
doc/systeme/sudo.1428924728.txt.gz · Dernière modification: 13/04/2015 13:32 par milou

Pied de page des forums

Propulsé par FluxBB