Il s'agit d'une question assez complexe liée au fichier Sudoers et à la commande sudo en général.
NOTE : J'ai effectué ces modifications sur une machine dédiée fonctionnant sous Ubuntu Desktop 13.04, que j'utilise uniquement à des fins d'apprentissage. Je comprends que l’activation de sudo NOPASSWD constitue un risque de sécurité énorme.
Initialement, la seule modification que j'ai apportée au fichier sudoers (/etc/sudoers) était une ligne, une spécification d'utilisateur qui aurait dû permettre à 'nicholsonjf' ; d'exécuter toutes les commandes avec sudo sans avoir à saisir de mot de passe (voir la ligne qui commence 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 été demandé chaque fois que j'ai exécuté une commande en tant que 'nicholsonjf' ;. Je n'ai pu commencer à exécuter des commandes sudo en tant que 'nicholsonjf' ; qu'après avoir 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 deux groupes spécifiés 'admin' ; et 'sudo' ; (vus ci-dessous dans le fichier sudoers), qui prévalaient sur la spécification de l'utilisateur 'nicholsonjf' ; parce qu'ils étaient plus bas dans le fichier de configuration ?
La ligne que vous avez 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 un membre du groupe sudo
, donc cette ligne s'applique à lui :
%sudo ALL=(ALL:ALL) ALL
Si vous voulez remplacer les entrées dans /etc/sudoers
, mettez simplement les nouvelles entrées après elles.
La nouvelle entrée devrait ressembler à
myuser ALL=(ALL) NOPASSWD : ALL
pour un seul utilisateur, ou
%sudo ALL=(ALL) NOPASSWD : ALL
pour un groupe.
Pour un utilisateur unique, ajoutez cette ligne à la fin de votre fichier sudoers
à l'aide de sudo visudo
.
superuser ALL=(ALL) NOPASSWD: ALL
Pour un groupe
%supergroup ALL=(ALL) NOPASSWD: ALL
Comme [Vince][1] l'a mentionné dans un commentaire, vous pouvez utiliser cette ligne :
%sudo ALL=NOPASSWD: ALL
(Cette ligne est différente de celles indiquées dans celles les réponses, et elle a résolu le problème pour moi).