Le 14.04 ici. Je suis entré dans ma machine en ajoutant la ligne suivante à /etc/sudoers
:
myuser ALL=NOPASSWD: ALL
Et puis essayé de courir:
sudo mkdir /etc/blah
... et on me demande mon mot de passe. Pourquoi?!?
Je ne souhaite pas que mon mot de passe soit demandé lors de cette opération. Veuillez noter que lorsque je cours, ls -ltr /
je reçois:
drwxr-xr-x 94 root root 4096 Jul 30 13:28 etc
Mais je ne pense pas que cela compte parce que je me suis érigé en "sudoer", non?
Plus important encore, que dois-je faire pour pouvoir exécuter sudo mkdir /etc/blah
mon utilisateur actuel ( myuser
) sans me demander le mot de passe?
Voici mon /etc/sudoers
dossier complet :
#
# 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
fizzbuzz ALL=NOPASSWD: ALL
chadmin 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
visudo
les modifications manuelles apportées à ce fichier, mais que ce ne sont pas des tâches de copier-coller, j'ai tout saisi tel quel. Maisvisudo
éditez-vous d'autres fichiers en plus de celui-ci? C'est peut-être ça .../etc/sudoers.d/
, ils peuvent avoir une importance primordiale/etc/sudoers
Réponses:
C'est la séquence / l'ordre des règles qui a provoqué cela. La dernière règle a la préférence.
Pour résoudre votre problème, déplacez simplement vos lignes,
du
sudoers
fichier àCette approche est préférable à la modification du
sudoers
fichier avec un éditeur de texte brut. Si vous insérez accidentellement des erreurs dans le fichier, vous risquez de ne plus pouvoir l'exécutersudo
. Toujours utiliservisudo
, afin que la syntaxe soit vérifiée et que vous receviez des avertissements concernant les erreurs!Votre directive ne fonctionne pas car elle est remplacée par:
Si vous exécutez la
groups
commande, vous devriez voir que votre utilisateur appartient à ces groupes.la source
nn-somename
, par exemple/etc/sudoers.d/20-myoverrides
Si myuser est dans le groupe sudo , alors cet ordre des lignes ne fournira pas d'accès sans mot de passe (comme l'a noté Florian Diesch), car la troisième ligne remplace la première.
Il suffit donc de mettre les lignes dans cet ordre:
Sous mon compte utilisateur, utilisez
sudo -l
pour vérifier les autorisations dont dispose monutilisateur .la source
Si plusieurs entrées correspondent pour un utilisateur, la dernière est utilisée. Donc, si
fizzbuzz
etchadmin
sont membres des groupesadmin
ousudo
on leur demandera toujours un mot de passe.Placez les deux lignes à la fin du
sudoers
fichier après la#includedir
ligne.la source
#includedir
c’est la dernière entréesudoers
par défaut.Idéalement, si vous personnalisez les commandes pouvant être exécutées via,
sudo
vous devez apporter ces modifications dans un fichier séparé sous/etc/sudoers.d/
plutôt que de les modifiersudoers
directement. Vous devriez également toujours utiliservisudo
pour éditer le (s) fichier (s). Vous ne devriez JAMAIS accorderNOPASSWD
deALL
commandes.Exemple:
sudo visudo -f /etc/sudoers.d/mynotriskycommand
Insérez votre ligne accordant la permission:
myuser ALL= NOPASSWD: /bin/mkdir
Puis enregistrez et quittez et
visudo
vous avertirons si vous avez des erreurs de syntaxe.Vous pouvez exécuter
sudo -l
pour voir les autorisations accordées à votre utilisateur. Si l'une desNOPASSWD
commandes spécifiques à l'utilisateur apparaît AVANT une%groupyouarein ALL=(ALL) ALL
commande dans la sortie, vous serez invité à entrer votre mot de passe.Si vous êtes en train de créer beaucoup de ces fichiers sudoers.d, vous voudrez peut-être les créer nommés par utilisateur pour faciliter leur visualisation. Gardez à l'esprit que l'ordre des NOMS DE FICHIERS et des règles dans le fichier est très important, le DERNIER chargé gagne gagne, qu'il soit PLUS ou MOINS permissif que les entrées précédentes.
Essayez de lancer
printf '%s\n' {{0..99},{A-Z},{a-z}} | sort
etprintf '%s\n' {{0..99},{A-Z},{a-z}} | LANG=C sort
de voir si votre langue actuelle imprime,AaBbCc
etc., ouABC
ensuiteabc
de déterminer quel serait le meilleur préfixe de la dernière lettre à utiliser.la source