C'est une question assez complexe liée au fichier Sudoers et à la commande Sudo en général.
REMARQUE: j'ai apporté ces modifications sur une machine dédiée exécutant Ubuntu Desktop 13.04, que j'utilise uniquement à des fins d'apprentissage. Je comprends que l'activation de NOPASSWD Sudo constitue un risque de sécurité énorme.
Au départ, mon seul changement au fichier sudoers (/ etc/sudoers) était une ligne, une spécification utilisateur qui aurait dû permettre à 'nicholsonjf' d'exécuter toutes les commandes avec Sudo sans devoir entrer de mot de passe (voir la ligne commençant par 'nicholsonjf '):
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
nicholsonjf ALL=NOPASSWD: ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group Sudo to execute any command
%Sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
Cependant, cela n'a pas fonctionné et mon mot de passe m'a toujours été demandé chaque fois que j'exécutais une commande sous le nom 'nicholsonjf'. Je n'ai pu commencer à exécuter les commandes Sudo en tant que "nicholsonjf" que lorsque j'ai supprimé "nicholsonjf" des groupes Sudo et admin.
Quelqu'un peut-il expliquer pourquoi cela a fonctionné?
Est-ce parce que l'utilisateur 'nicholsonjf' héritait des droits Sudo des spécifications de deux administrateurs de 'admin' et 'Sudo' (voir ci-dessous dans le fichier sudoers), qui surchargeaient la spécification d'utilisateur 'nicholsonjf' car elles se trouvaient plus bas fichier de configuration?
Votre ligne ajoutée a été remplacée. De man sudoers
:
Lorsque plusieurs entrées correspondent pour un utilisateur, elles sont appliquées dans l'ordre. Lorsqu'il y a plusieurs correspondances, la dernière correspondance est utilisée (ce qui n'est pas nécessairement la correspondance la plus spécifique).
Dans votre cas, nicholsonjf
était membre du groupe Sudo
donc, pour lui, cette ligne s'appliquait:
%Sudo ALL=(ALL:ALL) ALL
Si vous souhaitez remplacer les entrées dans /etc/sudoers
, placez les nouvelles entrées après elles.
La nouvelle entrée devrait ressembler à
myuser ALL=(ALL) NOPASSWD:ALL
pour un utilisateur unique ou
%Sudo ALL=(ALL) NOPASSWD:ALL
pour un groupe.
Pour un utilisateur unique:
superuser ALL=(ALL) NOPASSWD:ALL
Pour un groupe:
%supergroup ALL=(ALL) NOPASSWD:ALL
Comme Vince a mentionné dans un commentaire , vous pouvez utiliser cette ligne:
%Sudo ALL=NOPASSWD: ALL
(Ceci est différent des lignes montrées dans ceuxréponses , et le problème a été résolu pour moi.)