web-dev-qa-db-fra.com

Fichiers Sudoers, activez NOPASSWD pour l'utilisateur, toutes les commandes

Préface

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.

Question

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?

125
James Nicholson

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.

147
pabouk

Pour un utilisateur unique:

superuser ALL=(ALL) NOPASSWD:ALL

Pour un groupe:

%supergroup  ALL=(ALL) NOPASSWD:ALL
115
Fedir RYKHTIK

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.)

0
E. Fortes