J'essaie de créer un script pour la création d'un utilisateur avec Sudo
accès pour mes instances ec2.
J'ai des problèmes pour configurer l'accès Sudo. Je lance ce qui suit en tant que root ...
adduser --disabled-password --gecos "" testuser
usermod -a -G admin,Sudo testuser
Je copie ensuite les authorised_keys de s3.
Le SSH fonctionne bien à ce stade.
Cependant, si j'essaie de Sudo, on me demande un mot de passe.
Mon fichier sudoers comprend les éléments suivants ...
# 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
Outre la déconnexion et la reconnexion, dois-je faire quelque chose pour que mes modifications prennent effet?
Je n'ai pas changé le fichier sudoers, c'était la configuration par défaut.
Il y a aussi un autre utilisateur créé par le système ubuntu
, qui peut Sudo avec succès. Cependant, il n'y a pas de mention explicite de cet utilisateur dans le fichier sudoers
, il doit donc le faire via l'appartenance à un groupe.
mise à jour: j'ai essayé d'ajouter tous les autres groupes qui "ubuntu" appartient à testuser, mais on me demande toujours le mot de passe.
Est-il possible de comprendre comment "Ubuntu" obtient un accès Sudo sans mot de passe?
Un mot de passe vous sera toujours demandé à moins que l'option NOPASSWD
ne soit définie dans le fichier sudoers
pour une entrée donnée (en ignorant le délai de grâce, le mot de passe est mémorisé et, par conséquent, non sollicité (15 minutes par défaut).
Par exemple, pour que tous les membres du groupe Sudo
aient une implémentation sans mot de passe Sudo
:
%Sudo ALL=(ALL:ALL) NOPASSWD: ALL
Cela indique que tout membre du groupe Sudo
peut exécuter toute commande commençant par Sudo
sans demander de mot de passe.
De même, pour que l'utilisateur foobar
exécute la commande reboot
:
foobar ALL=(ALL:ALL) NOPASSWD: /sbin/reboot
Notez que ce n’est pas une bonne idée d’avoir un accès sans mot de passe Sudo
pour toutes les commandes, sauf si vous avez une très bonne raison, vous devriez envisager de limiter les commandes au minimum nécessaire.
Les règles Sudo
peuvent également être définies dans des fichiers du répertoire /etc/sudoers.d/
. Par défaut, le fichier /etc/sudoers
contient:
includedir /etc/sudoers.d
à la fin, tout fichier ne contenant pas .
ou se terminant par ~
sera lu pour les règles Sudo
. Vraisemblablement, les définitions de l'utilisateur ubuntu
définies dans l'un des fichiers du répertoire /etc/sudoes.d/
.