を使用します。 NOPASSWD
directive
Vous pouvez utiliser le NOPASSWD
dans votre /etc/sudoers
fichier .
Si votre utilisateur s'appelle user
et votre hôte s'appelle 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
pour exécuter les commandes souhaitées sur host
sans saisir de mot de passe. Tous les autres sudo
Le mot de passe est toujours nécessaire pour accéder aux commandes.
Les commandes spécifiées dans la section sudoers
fichier doit doivent être pleinement qualifiées (c'est-à-dire qu'elles doivent utiliser le chemin absolu de la commande à exécuter), comme décrit dans le document intitulé sudoers
page de manuel . Fournir un chemin relatif est considéré comme une erreur de syntaxe.
Si la commande se termine par un /
et pointe vers un répertoire, l'utilisateur pourra exécuter n'importe quelle commande dans ce répertoire (mais pas dans ses sous-répertoires). Dans l'exemple suivant, l'utilisateur user
peut exécuter n'importe quelle commande dans le répertoire /home/someuser/bin/
:
user host = (root) NOPASSWD: /home/someuser/bin/
Nota: Utilisez toujours la commande visudo
pour modifier le sudoers
pour vous assurer que vous ne vous bloquez pas hors du système - juste au cas où vous écririez accidentellement quelque chose d'incorrect dans le fichier sudoers
fichier. visudo
sauvegardera votre fichier modifié dans un emplacement temporaire et seulement écraser le vrai sudoers
si le fichier modifié peut être analysé sans erreur.
使用方法 /etc/sudoers.d
au lieu de modifier /etc/sudoers
Comme alternative à l'édition du /etc/sudoers
vous pouvez ajouter les deux lignes dans un nouveau fichier dans le dossier /etc/sudoers.d
par exemple /etc/sudoers.d/shutdown
. Il s'agit d'une manière élégante de séparer les différents changements apportés à l'indicateur sudo
et laisse également l'original sudoers
inchangé pour faciliter les mises à jour.
Nota: Encore une fois, vous devez utiliser la commande visudo
pour modifier le fichier afin de s'assurer que vous ne vous bloquez pas dans le système :
sudo visudo -f /etc/sudoers.d/shutdown
Cela garantit aussi automatiquement que le propriétaire et les autorisations du nouveau fichier sont correctement définis.
Si sudoers
c'est le bordel
Si vous n'avez pas utilisé visudo
pour éditer vos fichiers et ensuite vous avez accidentellement gâché /etc/sudoers
ou a endommagé un fichier dans /etc/sudoers.d
alors vous serez bloqué dans sudo
.
La solution pourrait être de réparer les fichiers en utilisant pkexec
qui est 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 permissions sont incorrectes pour une quelconque sudoers
le fichier sera ignoré par sudo
donc vous pourriez aussi vous retrouver bloqué dans cette situation. Là encore, vous pouvez utiliser pkexec
pour régler ce problème.
Les permissions correctes devraient être les suivantes :
$ ls -l /etc/sudoers.d/shutdown
-r--r----- 1 root root 86 Jul 16 15:37 /etc/sudoers.d/shutdown
Utilice pkexec
comme ceci pour réparer propriété et permissions :
pkexec chown root:root /etc/sudoers.d/shutdown
pkexec chmod 0440 /etc/sudoers.d/shutdown