====== sudo ====== ---- La commande sudo permet à un utilisateur d'exécuter des commandes avec les droits root. ===== Utilisation ===== ==== Commandes de base ==== === Exécuter une commande en tant que root === sudo === Ouvrir une session interactive root === sudo -i sudo -s === Oublier le mot de passe mémorisé === sudo -k === Lister ses droits === sudo -l ==== Donner les droits sudo ==== sudo adduser sudo ---- [[all:bibles:linux:commandes:sudo|Haut de page]] ===== Configuration ===== ==== /etc/sudoers.d ==== Tous les fichiers du répertoire /etc/sudoers.d/ ne finissant pas par ~ ou ne contenant pas un . sont lus et analysés lorsque l'on utilise la commande sudo. Le nom est libre et peut faire référence à la commande et/ou l'utilisateur concerné. === Editer un fichier === visudo -f /etc/sudoers.d/- Pour configurer l'éditeur par défaut pour visudo utiliser la commande : **sudo update-alternatives --config editor** === Syntaxe === identifiant ALL = (user) /chemin/complet/commande,/chemin/complet/autrecommande %groupe ALL = (user) /chemin/complet/commande,!/chemin/complet/autrecommande * identifiant représente un nom d'utilisateur. Un seul identifiant par ligne. * %groupe désigne un groupe d'utilisateurs. Un seul groupe par ligne. * ALL désigne la ou les machines dans lesquelles les commandes sont autorisées ou refusées pour cet utilisateur ou ce groupe d'utilisateurs. Le mot-clé ALL désigne l'ensemble des machines du parc informatique. Dans le cadre d'une utilisation à domicile, laisser ALL n'est pas un inconvénient. Dans un grand parc d'entreprise, de meilleures stratégies sont à prévoir. * user (entre parenthèses) désigne l'utilisateur dont on prend les droits (peut valoir ALL pour tous). * commande et autrecommande représentent des commandes pouvant être exécutées par l'utilisateur ou le groupe d'utilisateurs désigné en début de ligne. Les commandes précédées d'un point d'exclamation (!) sont refusées, alors que celles sans point d'exclamation sont autorisées.\\ Les commandes multiples sont séparées par une virgule, sans espace.\\ Les commandes doivent être entrées de manière exacte. Saisir des chemins absolus vers les commandes. === Exemple pour gérer un service === Les lignes suivantes autorisent l'utilisateur à exécuter les commande systemctl stop|start|restart|status nom.service sans mot de passe. Defaults:user !requiretty user ALL= NOPASSWD: /bin/systemctl restart nom user ALL= NOPASSWD: /bin/systemctl stop nom user ALL= NOPASSWD: /bin/systemctl start nom user ALL= NOPASSWD: /bin/systemctl status nom * requiretty : Interdit l'exécution de la commande sudo à partir d'autre chose qu'une console ou un terminal, notamment à partir de scripts cron ou cgi-bin. En mettant un ! devant on l'autorise notamment si cela a été interdit globalement à un niveau supérieur. En cas de problème penser à bien taper la commande de façon identique à ce qui est indiqué dans le fichier (préfixé de la commande **sudo**). === Exemple pour arrêter la machine === Defaults:user !requiretty user ALL= NOPASSWD: /sbin/poweroff === Exemple pour toute commande === user ALL=(ALL) NOPASSWD: ALL ==== /etc/sudoers ==== Il est possible de modifier directement le fichier /etc/sudoers mais il est préférable de privilégier d'écrire ses modifications locales dans le répertoire /etc/sudoers.d ---- [[all:bibles:linux:commandes:sudo|Haut de page]] ===== Sources ===== * [[https://doc.ubuntu-fr.org/sudoers|Doc-Ubuntu]] * [[https://www.linuxtricks.fr/wiki/sudo-utiliser-et-parametrer-sudoers|Linuxtricks]] ---- [[all:bibles:linux:commandes:sudo|Haut de page]]