| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| wiki:os:gnu_linux:tutos:admin:sudo [2025/04/09 14:19] – [En passant par le groupe utilisateur sudo] Thibault Seguin | wiki:os:gnu_linux:tutos:admin:sudo [2025/04/09 17:52] (Version actuelle) – [Quelques commandes sudo] Thibault Seguin |
|---|
| ====== La commande sudo comme alternative au compte root ====== | ====== La commande sudo comme alternative au compte root ====== |
| | Logo de **sudo** : {{ :wiki:os:gnu_linux:tutos:admin:sudo_logo.png?nolink&120 |}} |
| ===== Présentation de sudo ===== | ===== Présentation de sudo ===== |
| La commande **sudo** (**substitute user do**) est une commande qui permet de lancer des commandes administratives sans nécessité d'accès au compte **root** (**superutilisateur** sous les système **Unix**) mais également des applications graphiques d'administration tel que **GParted**. | La commande **sudo** (**substitute user do**) est une commande qui permet de lancer des commandes administratives sans nécessité d'accès au compte **root** (**superutilisateur** sous les systèmes **Unix**) mais également des applications graphiques d'administrations tel que **GParted**. Il existe une commande similaire à //sudo// du nom de **doas** qui provient du **projet OpenBSD**. |
| |
| ===== Installation de sudo ===== | ===== Installation de sudo ===== |
| Pour les distribution Linux n'ayant pas //sudo// par défaut, il faut d'abord vous connectez en tant que //root// : | Pour les distributions Linux n'ayant pas //sudo// par défaut, il faut d'abord vous connectez en tant que //root// : |
| <code user>su -</code>puis entrez votre //mot de passe// root. | <code user>su -</code>puis entrez votre //mot de passe// root. |
| |
| <code root>visudo</code>ouvre le fichier ''/etc/sudoers'' avec votre éditeur de texte. | <code root>visudo</code>ouvre le fichier ''/etc/sudoers'' avec votre éditeur de texte. |
| |
| Copier la ligne ''root ALL=(ALL:ALL) ALL'' et ajoutez au fichier ''tom ALL=(ALL:ALL) ALL'', //tom// est à remplacer par votre //nom d'utilisateur//. L'ajout de ''tom ALL=(ALL:ALL) ALL'' au fichier ''sudoers'' vous donne tous les //droits// du compte //root//. Vous pouvez évidemment peaufiner votre réglage et n'attribuer que quelques autorisations à votre //utilisateur//. | Copier la ligne ''root ALL=(ALL:ALL) ALL'' et ajoutez au fichier ''tom ALL=(ALL:ALL) ALL'', //tom// est à remplacer par votre //nom d'utilisateur//. L'ajout de ''tom ALL=(ALL:ALL) ALL'' au fichier ''sudoers'' vous donne tous les //droits// du compte //root// de manière immédiate. Vous pouvez évidemment peaufiner votre réglage et n'attribuer que quelques autorisations à votre //utilisateur//. |
| |
| ==== En passant par le groupe utilisateur sudo ==== | ==== En passant par le groupe utilisateur sudo ==== |
| |
| <note>Par défaut l'ajout de votre utilisateur au groupe sudo vous donnes les mêmes droits que root.</note> | <note>Par défaut l'ajout de votre utilisateur au groupe sudo vous donnes les mêmes droits que root.</note> |
| | |
| | <note tip>Sur les distributions Linux actuels, privilégiez la méthode d'ajout du groupe sudo à votre utilisateur. Mais pour n'importe quel système Unix, privilégiez l'édition du fichier ''sudoers'', qui fonctionne sur tout OS de type Unix.</note> |
| | |
| | ===== Utilisation de la commande sudo ===== |
| | Pour avoir une information complète sur la commande //sudo// : |
| | <code user>man sudo</code> |
| | |
| | Pour avoir un bref résumé de l'utilisation de la commande //sudo// : |
| | <code user>sudo --help</code>qui affiche : |
| | <file>sudo – exécute une commande en tant qu'un autre utilisateur |
| | |
| | usage: sudo -h | -K | -k | -V |
| | usage: sudo -v [-ABkNnS] [-g group] [-h host] [-p prompt] [-u user] |
| | usage: sudo -l [-ABkNnS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command [arg ...]] |
| | usage: sudo [-ABbEHkNnPS] [-r role] [-t type] [-C num] [-D directory] [-g group] [-h host] [-p prompt] [-R directory] [-T timeout] [-u user] |
| | [VAR=value] [-i | -s] [command [arg ...]] |
| | usage: sudo -e [-ABkNnS] [-r role] [-t type] [-C num] [-D directory] [-g group] [-h host] [-p prompt] [-R directory] [-T timeout] [-u user] file ... |
| | |
| | Options: |
| | -A, --askpass utiliser un programme adjoint pour demander le mot de passe |
| | -b, --background exécuter la commande en arrière-plan |
| | -B, --bell émettre un signal sonore lors d'une demande |
| | -C, --close-from=num fermer tous les descripteurs de fichiers >= n° |
| | -D, --chdir=directory changer le répertoire de travail avant d'exécuter la commande |
| | -E, --preserve-env préserver l'environnement de l'utilisateur en exécutant la commande |
| | --preserve-env=list préserver les variables d'environnement spécifiques |
| | -e, --edit éditer les fichiers au lieu d'exécuter une commande |
| | -g, --group=group exécuter la commande en tant que le nom ou ID de groupe spécifié |
| | -H, --set-home assigner à la variable HOME le répertoire personnel de l'utilisateur cible |
| | -h, --help afficher le message d'aide et terminer |
| | -h, --host=host exécuter la commande sur l'hôte (si supporté par le greffon) |
| | -i, --login exécuter le shell de login comme l'utilisateur cible. Une commande peut aussi être spécifiée |
| | -K, --remove-timestamp supprime complètement le fichier d'horodatage |
| | -k, --reset-timestamp invalide le fichier d'horodatage |
| | -l, --list afficher les privilèges de l'utilisateur ou vérifie une commande spécifique. Utilisez deux fois pour une forme |
| | plus longue |
| | -n, --non-interactive mode non interactif, aucune invite utilisée |
| | -P, --preserve-groups préserve le vecteur des groupes au lieu de le changer en celui de la cible |
| | -p, --prompt=prompt utiliser l'invite de mot de passe spécifié |
| | -R, --chroot=directory changer le répertoire racine avant d'exécuter la commande |
| | -r, --role=role créer le contexte de sécurité SELinux avec le rôle spécifié |
| | -S, --stdin lire le mot de passe depuis l'entrée standard |
| | -s, --shell exécuter le shell en tant que l'utilisateur cible. Une commande peut aussi être spécifiée |
| | -t, --type=type créer le contexte de sécurité SELinux avec le type spécifié |
| | -T, --command-timeout=timeout terminer la commande après la limite de temps spécifiée |
| | -U, --other-user=user en mode liste, afficher les privilèges de l'utilisateur |
| | -u, --user=user exécuter la commande (ou éditer le fichier) sous le nom d'utilisateur ou le ID spécifié |
| | -V, --version afficher les informations de version et terminer |
| | -v, --validate mettre à jour l'horodatage de l'utilisateur sans exécuter de commande |
| | -- arrêter de traiter les arguments en ligne de commande</file> |
| | |
| | ==== Quelques commandes sudo ==== |
| | Pour vous connecter en tant que //root// via votre //utilisateur// : |
| | <code user>sudo su -</code>ou : |
| | <code user>sudo -i</code> |
| | |
| | Exécuter une commande //administrative// avec les droits root sous sudo : |
| | <code user>sudo cmd_admin</code>exemple : |
| | <code user>sudo apt update</code> |
| | |
| | Exécuter une commande avec //sudo// en choisissant votre //utilisateur// : |
| | <code user>sudo -u tom fdisk -l</code>exécute la commande ''fdisk -l'' via l'utilisateur //tom// avec des droits //root//. |
| | |
| | Vous connectez en tant que //root// en spécifiant un //shell Unix// installé : |
| | <code user>sudo -s tcsh</code>vous connectes en //root// avec le shell //tcsh//. |
| | |
| | Terminer une //session// sudo, pour devoir retaper le //mot de passe// de votre utilisateur après une nouvelle commande sudo : |
| | <code user>sudo -k</code> |
| | |
| | <note>Il existe encore bon nombres d'//options// pour la commande //sudo//, je vous laisse plonger dans le **man** de la commande.</note> |
| | |
| | |
| | |
| | |
| | |
| |
| |
| |
| |