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 →
Ci-dessous, les différences entre deux révisions de la page.
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 [18/12/2013 13:16] smolski [Utilisation de SUDO] |
doc:systeme:sudo [22/10/2019 10:45] --gilles-- [Important] |
||
---|---|---|---|
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 ! | + | <note important> |
+ | De toute façon mieux vaut **privilégier** [[:doc:systeme:su | la commande su]] chaque fois que cela est possible !</note> | ||
Ligne 22: | Ligne 34: | ||
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 ===== | ||
- | <file root>aptitude install sudo</file> | + | <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 44: | Ligne 94: | ||
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 72: | Ligne 120: | ||
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 93: | Ligne 144: | ||
<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 108: | Ligne 159: | ||
À 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 114: | Ligne 165: | ||
<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 189: | Ligne 241: | ||
</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 ===== | ||