wiki:os:bsd_unix:freebsd:tutos:admin:sudo

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
wiki:os:bsd_unix:freebsd:tutos:admin:sudo [2025/04/09 23:17] – [Installation de sudo] Thibault Seguinwiki:os:bsd_unix:freebsd:tutos:admin:sudo [2025/04/09 23:33] (Version actuelle) – [Installation de sudo] Thibault Seguin
Ligne 2: Ligne 2:
 Logo de **sudo** : {{ :wiki:os:bsd_unix:freebsd:tutos:admin:sudo_logo.png?nolink&120 |}} Logo de **sudo** : {{ :wiki:os:bsd_unix:freebsd: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èmes **Unix**) mais également des applications graphiques d'administrations. Il existe une commande similaire à //sudo// du nom de **doas** qui provient du **projet OpenBSD**.+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. Il existe une commande similaire à //sudo// du nom de **doas** qui provient du **projet OpenBSD**.
  
 ===== Installation de sudo ===== ===== Installation de sudo =====
-Pour les distributions Linux n'ayant pas //sudo// par défaut, il faut d'abord vous connectez en tant que //root// :+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.
  
Ligne 20: Ligne 20:
  
 ===== Lié un utilisateur à sudo ===== ===== Lié un utilisateur à sudo =====
-==== Par la méthode traditionnel ==== +Suite à l'installation de //sudo//, un fichier de configuration est créé du nom de ''sudoers'', ''/usr/local/etc/sudoers'' sous **FreeBSD** et **OpenBSD** et ''/usr/pkg/etc/sudoers'' sous **NetBSD**.
-Suite à l'installation de //sudo//, un fichier de configuration est créé du nom de ''sudoers'', ''/etc/sudoers'' sous **Linux** ou ''/usr/local/etc/sudoers'' sous **FreeBSD**.+
  
-Pour éditer ce fichier de manière sécurisée, il y a l'utilitaire **visudo** qui utilise votre éditeur de texte par défaut.\\+Pour éditer ce fichier de manière sécurisée, il y a l'utilitaire **visudo** qui utilise votre éditeur de texte par défaut (en principe **ee** pour FreeBSD ou **vi**, plus précisément **nvi**).\\
 Entrez en //root// : Entrez en //root// :
-<code root>visudo</code>ouvre le fichier ''/etc/sudoers'' avec votre éditeur de texte.+<code root>visudo</code>ouvre le fichier ''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// de manière immédiate. 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 ==== 
-Sous Debian, en //root// : 
-<code root>adduser tom sudo</code>ajoute l'utilisateur //tom// au groupe //sudo//. 
- 
-Toutes distributions Linux confondues, en //root// : 
-<code root>usermod -aG sudo tom</code>ajoute l'utilisateur //tom// au groupe //sudo//. Évidemment il faut remplacer //tom// par votre //nom d'utilisateur// ! 
- 
-À noter que l'ajout de //votre utilisateur// au groupe //sudo// n'a pas un effet immédiat, il faut vous //déconnectez// et vous //reconnectez// avec votre utilisateur. 
- 
-<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 ===== ===== Utilisation de la commande sudo =====
Ligne 47: Ligne 33:
  
 Pour avoir un bref résumé de l'utilisation de la commande //sudo// : Pour avoir un bref résumé de l'utilisation de la commande //sudo// :
-<code user>sudo --help</code>qui affiche : +<code user>sudo --help</code>
-<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 ==== ==== Quelques commandes sudo ====
 Pour vous connecter en tant que //root// via votre //utilisateur// : Pour vous connecter en tant que //root// via votre //utilisateur// :
Ligne 97: Ligne 41:
 Exécuter une commande //administrative// avec les droits root sous sudo : Exécuter une commande //administrative// avec les droits root sous sudo :
 <code user>sudo cmd_admin</code>exemple : <code user>sudo cmd_admin</code>exemple :
-<code user>sudo apt update</code>+<code user>sudo vipw</code>
  
 Exécuter une commande avec //sudo// en choisissant votre //utilisateur// : 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//+<code user>sudo -u tom newfs /dev/disk</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é : 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//.+<code user>sudo -s bash</code>vous connectes en //root// avec le shell //bash//.
  
 Terminer une //session// sudo, pour devoir retaper le //mot de passe// de votre utilisateur après une nouvelle commande sudo : Terminer une //session// sudo, pour devoir retaper le //mot de passe// de votre utilisateur après une nouvelle commande sudo :
  • wiki/os/bsd_unix/freebsd/tutos/admin/sudo.1744240646.txt.gz
  • Dernière modification : 2025/04/09 23:17
  • de Thibault Seguin