====== 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// : visudoouvre 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_adminexemple : sudo vipw Exécuter une commande avec //sudo// en choisissant votre //utilisateur// : sudo -u tom newfs /dev/diskexé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 bashvous 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.