Question : Je voulais installer un package en tant qu'utilisateur local et utiliser sudo partout où cela est nécessaire. Pour ce faire, j'ai créé un compte appelé "stack" et j'ai fait l'entrée ci-dessous dans mon /etc/sudoers fichier.
# User privilege specification root ALL=(ALL:ALL) ALL stack ALL=(ALL) NOPASSWD:ALL
Cependant, lors de la vérification via la ligne de commande à l'aide de la commande sudo -s , il demande le mot de passe comme indiqué ci-dessous :
stack@cloudsec2:~$ sudo -s [sudo] password for stack:
S'il vous plaît aidez-moi, où est-ce que je fais mal ?
Solution 1 : Vous devez mettre cette ligne après la ligne avec la règle pour le groupe admin. Parce que lorsque plusieurs entrées correspondent à un utilisateur, elles sont appliquées dans l'ordre. Lorsqu'il y a plusieurs correspondances, la dernière correspondance est utilisée (qui n'est pas nécessairement la correspondance la plus spécifique).
Ainsi, votre fichier sudoers devrait ressembler à ceci :
# User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL stack ALL=(ALL) NOPASSWD:ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL
Solution 2 : Plutôt que de déplacer la ligne, vous pouvez simplement la supprimer et ajouter NOPASSWD à l'entrée pour %sudo comme indiqué ci-dessous :
%sudo ALL=(ALL:ALL) NOPASSWD:ALL
Remarque :Assurez-vous que votre connexion appartient au groupe sudo comme indiqué ci-dessous :
root@cloudsec2:~# id stack uid=1000(stack) gid=1000(stack) groups=1000(stack),4(adm),27(sudo),
Solution 3 : Déplacez votre ligne vers un fichier sous /etc/sudoers.d/
visudo -f /etc/sudoers.d/myOverrides
Insérez la ligne ci-dessous :
stack ALL=(ALL:ALL) NOPASSWD:ALL
Ouvrez maintenant /etc/sudoers fichier et décommentez la ligne ci-dessous :
visudo -f /etc/sudoers #includedir /etc/sudoers.d
C'est une meilleure approche pour modifier les sudoers.