Outils pour utilisateurs

Outils du site


all:bibles:linux:commandes: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édentesRévision précédente
all:bibles:linux:commandes:sudo [2025/01/24 10:56] – [/etc/sudoers.d] omeylhocall:bibles:linux:commandes:sudo [2025/01/24 10:57] (Version actuelle) – [/etc/sudoers.d] omeylhoc
Ligne 1: Ligne 1:
 +====== 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 ===
 +
 +<code bash>
 +sudo <commande>
 +</code>
 +
 +=== Ouvrir une session interactive root ===
 +
 +<code bash>
 +sudo -i
 +sudo -s
 +</code>
 +
 +=== Oublier le mot de passe mémorisé ===
 +
 +<code bash>
 +sudo -k
 +</code>
 +
 +=== Lister ses droits ===
 +
 +<code bash>
 +sudo -l
 +</code>
 +
 +==== Donner les droits sudo ====
 +
 +<code bash>
 +sudo adduser <login> sudo
 +</code>
 +
 +----
 +
 +[[all:bibles:linux:commandes:sudo|Haut de page]]
 +
 +===== Configuration =====
 +
 +==== /etc/sudoers.d ====
 +
 +Tous les fichiers du répertoire <color #00a2e8>/etc/sudoers.d/</color> 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 ===
 +
 +<code bash>
 +visudo -f /etc/sudoers.d/<commande>-<utilisateur>
 +</code>
 +
 +<note tip>Pour configurer l'éditeur par défaut pour visudo utiliser la commande : **sudo update-alternatives <nowiki>--</nowiki>config editor**</note>
 +
 +=== Syntaxe ===
 +
 +<file vim>
 +identifiant ALL = (user) /chemin/complet/commande,/chemin/complet/autrecommande
 +%groupe ALL = (user) /chemin/complet/commande,!/chemin/complet/autrecommande
 +</file>
 +
 +
 +  * 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.
 +<note tip>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.
 +</note>
 +=== Exemple pour gérer un service ===
 +
 +Les lignes suivantes autorisent l'utilisateur <user> à exécuter les commande systemctl stop|start|restart|status nom.service sans mot de passe.
 +
 +<file vim>
 +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
 +</file>
 +
 +  * 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.
 +
 +<note tip>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**).</note>
 +
 +=== Exemple pour arrêter la machine ===
 +
 +<file vim>
 +Defaults:user !requiretty
 +user ALL= NOPASSWD: /sbin/poweroff
 +</file>
 +
 +=== Exemple pour toute commande ===
 +
 +<file vim>
 +user ALL=(ALL) NOPASSWD: ALL
 +</file>
 +
 +==== /etc/sudoers ====
 +
 +Il est possible de modifier directement le fichier <color #00a2e8>/etc/sudoers</color> mais il est préférable de privilégier d'écrire ses modifications locales dans le répertoire <color #00a2e8>/etc/sudoers.d</color> 
 +
 +----
 +
 +[[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]]