Comment l' ubuntu
utilisateur sur les images AWS pour Ubuntu Server 12.04 a-t-il un mot sudo
de passe sans mot de passe pour toutes les commandes alors qu'il n'y a pas de configuration pour cela /etc/sudoers
?
J'utilise le serveur Ubuntu 12.04 sur Amazon. Je souhaite ajouter un nouvel utilisateur ayant le même comportement que l'utilisateur par défaut d'Ubuntu. Plus précisément, je veux un mot sudo
de passe sans mot de passe pour ce nouvel utilisateur.
J'ai donc ajouté un nouvel utilisateur et je suis allé à l'édition /etc/sudoers
(en utilisant visudo bien sûr). À la lecture de ce fichier, il semblait que l' ubuntu
utilisateur par défaut obtenait le mot sudo
de passe sans être membre du admin
groupe. J'ai donc ajouté mon nouvel utilisateur à cela. Ce qui n'a pas fonctionné. Ensuite, j'ai essayé d'ajouter la NOPASSWD
directive à sudoers
. Ce qui n'a pas fonctionné non plus.
Quoi qu'il en soit, maintenant je suis juste curieux. Comment l’ ubuntu
utilisateur obtient-il des privilèges sans mot de passe s’ils ne sont pas définis dans /etc/sudoers
. Quel est le mécanisme qui permet cela?
Réponses:
OK, j’ai découvert la réponse, alors aussi bien la mettre ici pour plus de précision. À la fin de
/etc/sudoers
ce que je pensais était juste un commentaire:Cependant, cela inclut en fait le contenu de ce répertoire. À l'intérieur de qui se trouve le fichier
/etc/sudoers.d/90-cloudimg-ubuntu
. Qui a le contenu attenduC'est donc là que réside la configuration sudo pour l'utilisateur Ubuntu par défaut.
Vous devriez éditer ce fichier en utilisant visudo. La commande suivante vous permettra d’éditer le fichier correct avec visudo.
Et ajoutez une ligne comme:
À la fin.
la source
/etc/sudoers.d/90-cloud-init-users
(donc à éditer ..sudo visudo -f /etc/sudoers.d/90-cloud-init-users
). Bien que ce soit plus propre de créer des fichiers supplémentaires à l’édition du fichier généré. Notez que les fichiers contenant un.
ou se terminant par ne~
seront pas inclus.J'ai constaté que la chose la plus simple à faire pour répliquer facilement ce problème sur plusieurs serveurs était la suivante:
Changer cette ligne:
à cette ligne:
Et déplacez-le sous cette ligne:
vous devriez maintenant avoir ceci:
puis pour chaque utilisateur ayant besoin d’un accès sudo AVEC un mot de passe :
et pour chaque utilisateur ayant besoin d'un accès sudo SANS mot de passe :
et enfin, lancez ceci:
Et c'est tout!
Edit: Vous devrez peut-être ajouter le groupe admin car je ne pense pas qu'il existe par défaut.
Vous pouvez également ajouter l'
ubuntu
utilisateur AWS par défaut auadmin
groupe via cette commande:Remarque: Comme @hata l'a mentionné, vous devrez peut-être utiliser le
adm
nom de votre groupe d'administrateurs, en fonction de la version d'Ubuntu utilisée.la source
Je créerais mon propre fichier dans le répertoire /etc/sudoers.d/ - le fichier créé par Amazon Cloud pourrait être écrasé en cas de mise à jour. Après avoir créé votre fichier dans /etc/sudoers.d, ajoutez cette entrée,
Redémarrez le système et cela fonctionnera.
la source
Réponse courte sans utiliser d’éditeur (testé sur bash, très risqué d’être exécuté sur des hôtes distants).
Configurez sudo pour qu'il fonctionne sans mot de passe pour l'utilisateur actuel:
Vérifiez l'édition avec:
Vérifiez si vous pouvez utiliser sudo sans mot de passe:
... ou simplement l'essayer avec:
la source
echo "$USER ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers
visudo
c'est particulièrement agréable de ne pas vous permettre de casser le fichier sudoers, donc de ne pas vous verrouiller hors de votre machine (ou du moins de sudo).visudo
, mais généralement pas par accident, car vousvisudo
ne sauvegardez que les modifications bien formées en fonction de la grammaire des fichiers sudoers . La plupart des erreurs sont syntaxiquement fausses, elles ne causent donc aucun dommagevisudo
. Si/etc/sudoers
ou un fichier/etc/sudoers.d
est mal formé,sudo
refuse d'élever les privilèges de qui que ce soit par mesure de sécurité, ce qui explique pourquoi ne pas utiliservisudo
est dangereux. (Bien que parfois celapkexec
puisse être résolu sans redémarrage.)Voici comment j'ai implémenté l'utilisateur non root et sans mot de passe dans une image Docker éphémère à utiliser dans un pipeline CICD:
la source