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

112

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 pose un risque énorme pour la sécurité.

Question

Initialement, 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 qui commence avec '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" une fois que 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 groupe de 'admin' et 'sudo' (voir ci-dessous dans le fichier sudoers), qui surchargeaient la spécification d'utilisateur 'nicholsonjf' car elles étaient plus éloignées dans le fichier de configuration?

    
posée James Nicholson 19.08.2013 - 02:45
la source

3 réponses

114

Votre ligne ajoutée a été remplacée. De man sudoers :

When multiple entries match for a user, they are applied in order. Where there are multiple matches, the last match is used (which is not necessarily the most specific match).

Dans votre cas, nicholsonjf était membre du groupe sudo , cette ligne s’appliquait donc pour lui:

%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 doit ressembler à

myuser ALL=(ALL) NOPASSWD:ALL pour un utilisateur unique ou

%sudo ALL=(ALL) NOPASSWD:ALL pour un groupe.

    
réponse donnée pabouk 03.09.2013 - 02:55
la source
110

Pour un utilisateur unique:

superuser ALL=(ALL) NOPASSWD:ALL

Pour un groupe:

%supergroup  ALL=(ALL) NOPASSWD:ALL
    
réponse donnée Fedir RYKHTIK 16.01.2015 - 16:28
la source
0

As Vince a mentionné dans un commentaire , vous pouvez utiliser cette ligne:

%sudo ALL=NOPASSWD: ALL

(Ceci diffère des lignes affichées dans ces répond et le problème a été résolu pour moi.)

    
réponse donnée E. Fortes 04.10.2017 - 11:53
la source

Lire d'autres questions sur les étiquettes