J'ai eu un problème similaire en essayant d'obtenir que mon conteneur docker autorise les scripts jenkins à utiliser les commandes sudo sans demander de mot de passe.
Cela a été résolu via le Dockerfile :
RUN echo "jenkins ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
Pour pouvoir le faire, vous devez vous assurer d'avoir la ligne suivante dans votre sudoers
fichier :
%sudo ALL=(ALL:ALL) ALL
Vous pouvez personnaliser la ligne ci-dessus pour modifier les autorisations comme si %sudo
était un utilisateur. Cette ligne autorisera tous les utilisateurs du sudo
groupe à utiliser sudo
.
Maintenant pour autoriser <username>
utiliser sudo
, vous pouvez simplement faire usermod -a -G sudo <username>
en tant que root, ce qui ajoute <username>
au sudo
groupe.
Vous pouvez utiliser cat
pour ajouter du texte à la fin de /etc/sudoers
. Tout d'abord, faites une copie de sauvegarde de votre /etc/sudoers
dossier. Ensuite :
cat >> /etc/sudoers
...type one or more lines here...
[control-D]
Assurez-vous absolument d'en utiliser deux caractères supérieurs à (>>
) et pas un seul, sinon vous écraserez tout le contenu de votre fichier.