Quelle est la meilleure façon d'ajouter NOPASSWD avec un utilisateur de vagabond?
Way 1:
groupadd -r admin
usermod -a -G admin vagrant
cp /etc/sudoers /etc/sudoers.orig
sed -i -e '/Defaults\s\+env_reset/a Defaults\texempt_group=admin' /etc/sudoers
sed -i -e 's/%admin ALL=(ALL) ALL/%admin ALL=NOPASSWD:ALL/g' /etc/sudoers
Voie 2:
# Set up Sudo
echo %vagrant ALL=NOPASSWD:ALL > /etc/sudoers.d/vagrant
chmod 0440 /etc/sudoers.d/vagrant
# Setup Sudo to allow no-password Sudo for "Sudo"
usermod -a -G Sudo vagrant
ou peut-être il y a encore mieux?
sudoers
Éditer manuellement le fichier que vous créez ou modifiez est parfois préférable à éditer avec _echo ... >
_ ou sed
--, en particulier sed
, sauf si vous y êtes extrêmement compétent. En effet, cela montre plus clairement l’impact de vos modifications et parce que, pour un fichier que vous ne créez pas (comme sudoers
dans "Way 1"), l’ouverture du fichier dans un éditeur de texte vous montre d’autres contenus. cela pourrait être pertinent. Vous devez généralement comprendre votre configuration actuelle avant d'y apporter des modifications et la lecture de tout fichier de configuration que vous modifiez est parfois utile à cette fin.
Cependant, plus important encore, une petite erreur en éditant _/etc/sudoers
_ ou tout fichier dans _/etc/sudoers.d
_ fait en sorte que Sudo
refuse de travailler entièrement jusqu'à ce que le problème soit résolu. fixe
Pour les systèmes Ubuntu de bureau, mais pas pour la plupart des systèmes de serveur, il y a ne solution relativement simple pour cela ; sinon, vous devrez peut-être démarrer en mode de récupération ou à partir d'un CD/DVD/USB en direct pour résoudre le problème de l'impossibilité d'exécuter des actions administratives.
Quoi qu'il en soit, vous devez utiliser visudo
pour éditer /etc/sudoers
et tous les fichiers de _/etc/sudoers.d
_.
Pour _/etc/sudoers
_: _Sudo visudo
_
Pour un fichier dans _/etc/sudoers.d
_ appelé vagrant
: _Sudo visudo /etc/sudoers.d/vagrant
_
visudo
vous a édité un fichier temporaire et, une fois que vous avez quitté, vérifie votre syntaxe pour s'assurer qu'il est correct avant de copier le fichier temporaire dans le fichier de configuration réel.
En raison de ce mécanisme, si vous voulez utiliser des lignes simples à la place d'un éditeur de texte, vous devriez pouvoir utiliser visudo
avec sed
ou un mécanisme similaire à des canaux (comme tee
) pour éditer sudoers
fichiers en toute sécurité d'une manière comparable à ce que vous avez utilisé dans "Way 1" et "Way 2.
Peut-être que quelqu'un d'autre postera une réponse expliquant comment faire cela; sinon, la prochaine fois que j'aurai accès à une machine appropriée pour de tels tests, je pourrai essayer de la comprendre et de développer cette réponse avec un exemple. Sinon, utiliser sed
ou echo
en toute sécurité pour créer/modifier sudoers
et _sudoers.d
_ peut être considéré comme le sujet d'une question distincte. Ceci est particulièrement le cas si votre principal intérêt ici consiste à donner le pouvoir directement à NOPASSWD Sudo jusqu'à la racine ou par le biais de l'appartenance à un groupe.
La principale différence entre "Way 1" et "Way 2" est la suivante:
Sudo
sans étant invité à entrer un mot de passe.À moins que vous ne vouliez tous les administrateurs puissent utiliser Sudo-root sans mot de passe (par défaut, la saisie d'un mot de passe est requise), l'option "Voie 2" est préférable.
Cependant, tout utilisateur souhaitant pouvoir exécuter des commandes arbitraires en tant que root devrait probablement aussi être un administrateur! (Cela leur permettra d'utiliser pkexec
et évitera toute confusion si vous ou un associé essayez de déterminer qui sont tous les utilisateurs avec la capacité d'effectuer des tâches d'administration système.)
Par conséquent, la meilleure chose à faire peut-être bien d'ajouter vagrant
en tant qu'administrateur et séparément conférer des capacités NOPASSWD
à vagrant
spécifiquement (et pas aux administrateurs en général).
Veuillez supprimer "%" de votre chemin 2, cela n'a pas fonctionné car "vagabond" est un utilisateur et non un groupe, la ligne à remplacer est -
echo vagrant ALL=NOPASSWD:ALL > /etc/sudoers.d/vagrant