Utilisez la NOPASSWD
directive
Vous pouvez utiliser la NOPASSWD
directive dans votre /etc/sudoers
fichier .
Si votre utilisateur est appelé user
et votre hôte est appelé, host
vous pouvez ajouter ces lignes à /etc/sudoers
:
user host = (root) NOPASSWD: /sbin/shutdown
user host = (root) NOPASSWD: /sbin/reboot
Cela permettra à l'utilisateur user
d'exécuter les commandes souhaitées host
sans entrer de mot de passe. Toutes les autres sudo
commandes ed nécessitent toujours un mot de passe.
Les commandes spécifiées dans le sudoers
fichier doivent être entièrement qualifiées (c'est-à-dire en utilisant le chemin absolu de la commande à exécuter), comme décrit dans la sudoers
page de manuel . Fournir un chemin relatif est considéré comme une erreur de syntaxe.
Si la commande se termine par un /
caractère de fin et pointe vers un répertoire, l'utilisateur pourra exécuter n'importe quelle commande de ce répertoire (mais pas dans les sous-répertoires qu'il contient). Dans l'exemple suivant, l'utilisateur user
peut exécuter n'importe quelle commande du répertoire /home/someuser/bin/
:
user host = (root) NOPASSWD: /home/someuser/bin/
Remarque: utilisez toujours la commande visudo
pour éditer le sudoers
fichier afin de vous assurer de ne pas vous verrouiller hors du système - juste au cas où vous écrivez accidentellement quelque chose d'incorrect dans le sudoers
fichier. visudo
va enregistrer votre fichier modifié à un emplacement temporaire et ne remplacera le vrai sudoers
fichier si le fichier modifié peut être analysé sans erreurs.
Utiliser /etc/sudoers.d
au lieu de modifier/etc/sudoers
Au lieu de modifier le /etc/sudoers
fichier, vous pouvez ajouter les deux lignes à un nouveau fichier, par /etc/sudoers.d
exemple /etc/sudoers.d/shutdown
. C’est un moyen élégant de séparer les différentes modifications apportées aux sudo
droits et de laisser le sudoers
fichier original intact pour faciliter les mises à niveau.
Remarque: à nouveau, vous devez utiliser la commande visudo
pour modifier le fichier afin de vous assurer de ne pas vous verrouiller hors du système:
sudo visudo -f /etc/sudoers.d/shutdown
Cela garantit également automatiquement que le propriétaire et les autorisations du nouveau fichier sont définis correctement.
Si sudoers
est foiré
Si vous n'avez pas l'habitude visudo
d'éditer vos fichiers et que vous avez ensuite accidentellement foiré /etc/sudoers
ou foiré un fichier, /etc/sudoers.d
vous serez bloqué sudo
.
La solution pourrait être de réparer les fichiers en utilisant pkexec
une alternative à sudo
.
Pour réparer /etc/sudoers
:
pkexec visudo
Pour réparer /etc/sudoers.d/shutdown
:
pkexec visudo -f /etc/sudoers.d/shutdown
Si la propriété et / ou les autorisations sont incorrectes pour un sudoers
fichier quelconque , le fichier sera ignoré, de sudo
sorte que vous risquez également de vous retrouver bloqué dans cette situation. Encore une fois, vous pouvez utiliser pkexec
pour résoudre ce problème.
Les autorisations correctes devraient être comme ceci:
$ ls -l /etc/sudoers.d/shutdown
-r--r----- 1 root root 86 Jul 16 15:37 /etc/sudoers.d/shutdown
Utilisez pkexec
comme ceci pour corriger la propriété et les autorisations :
pkexec chown root:root /etc/sudoers.d/shutdown
pkexec chmod 0440 /etc/sudoers.d/shutdown