web-dev-qa-db-fra.com

Meilleur moyen d'ajouter un utilisateur de vagabond NOPASSWD?

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?

7
Kratos

Considérations pour l'édition de fichiers 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.

Confier le pouvoir de Sudo à root par appartenance à un groupe plutôt que par utilisateur

La principale différence entre "Way 1" et "Way 2" est la suivante:

  • "Way 1" fait de l'utilisateur un administrateur et donne aux administrateurs la possibilité d'exécuter des commandes en tant qu'utilisateur root avec Sudosans étant invité à entrer un mot de passe.
  • "Voie 2" confère cette capacité spécifiquement ​​à un utilisateur.

À 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).

10
Eliah Kagan

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
3
vivekyad4v