====== La commande sudo comme alternative au compte root ======
Logo de **sudo** : {{ :wiki:os:bsd_unix:freebsd:tutos:admin:sudo_logo.png?nolink&120 |}}
===== 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**.
===== Installation de sudo =====
Vous connectez en tant que //root// :
su -
puis entrez votre //mot de passe// root.
Sous FreeBSD :
pkg install sudo
Sous NetBSD :
pkgin install sudo
Sous OpenBSD :
pkg_add sudo
===== Lié un utilisateur à sudo =====
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**.
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// :
visudo
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//.
===== Utilisation de la commande sudo =====
Pour avoir une information complète sur la commande //sudo// :
man sudo
Pour avoir un bref résumé de l'utilisation de la commande //sudo// :
sudo --help
==== Quelques commandes sudo ====
Pour vous connecter en tant que //root// via votre //utilisateur// :
sudo su -
ou :
sudo -i
Exécuter une commande //administrative// avec les droits root sous sudo :
sudo cmd_admin
exemple :
sudo vipw
Exécuter une commande avec //sudo// en choisissant votre //utilisateur// :
sudo -u tom newfs /dev/disk
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é :
sudo -s bash
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 :
sudo -k
Il existe encore bon nombres d'//options// pour la commande //sudo//, je vous laisse plonger dans le **man** de la commande.