web-dev-qa-db-fra.com

Un utilisateur du groupe d'administration demande toujours un mot de passe à sudo

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?

2
user1751825

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/.

5
heemayl