web-dev-qa-db-fra.com

Comment configurer `Sudo` sans mot de passe sous Linux?

Comment l'accès sans mot de passe Sudo peut-il être configuré sur les distributions RHEL (Fedora, CentOS, etc.) ou Ubuntu? (Si c'est la même chose entre les distributions, c'est encore mieux!)

Cadre: équipement personnel et/ou de laboratoire/de formation sans souci d'accès non autorisé (c.-à-d., Les appareils sont sur des réseaux non publics, et tous/tous les utilisateurs sont entièrement fiables, et le contenu des appareils est "plain-Vanilla") .

160
warren

MODIFIER grâce au commentaire de la médina: selon la page de manuel, vous devriez pouvoir écrire

ALL            ALL = (ALL) NOPASSWD: ALL

pour permettre à tous les utilisateurs d'exécuter toutes les commandes sans mot de passe.


Pour référence, je laisse ma réponse précédente:

Si vous ajoutez une ligne du formulaire

%wheel         ALL = (ALL) NOPASSWD: ALL

à /etc/sudoers (en utilisant la commande visudo, bien sûr), il permettra à tous les membres du groupe wheel d'exécuter n'importe quelle commande sans fournir de mot de passe. Je pense donc que la meilleure solution est de mettre tous vos utilisateurs dans un groupe et de mettre une ligne comme ça dans sudoers - évidemment, vous devriez remplacer wheel par le groupe réel que vous utilisez.

Vous pouvez également définir un alias d'utilisateur,

User_Alias     EVERYONE = user1, user2, user3, ...

et l'utiliser:

EVERYONE       ALL = (ALL) NOPASSWD: ALL

bien que vous deviez mettre à jour /etc/sudoers chaque fois que vous ajoutez ou supprimez un utilisateur.

177
David Z

J'ai essayé les solutions ci-dessus en vain. La solution suivante a fonctionné pour moi Éditez le fichier/etc/sudoers et ajoutez la ligne suivante

username ALL=(ALL) NOPASSWD: ALL

Le clé est de l'ajouter après la dernière ligne qui dit

#includedir /etc/sudoers.d
103
Richipal

J'ai essayé toutes les réponses sur cette page, sans résultat utile. Finalement, je l'ai compris, utilisez cette commande pour répertorier vos droits Sudo:

Sudo -l

Cela devrait vous donner une sortie comme celle-ci:

User gmurphy may run the following commands on this Host:
    (root) NOPASSWD: ALL
    (ALL) ALL

Cela montre que je suis configuré avec des privilèges root mais que je fais toujours partie d'un groupe (admin) correspondant à une règle Sudo qui attend le mot de passe ("(ALL) ALL"). Cela forçait Sudo à m'inviter. La règle en question était les utilisateurs administrateurs:

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

Une fois que j'ai commenté cela, j'ai pu Sudo sans mot de passe. J'espère que cela est utile à quelqu'un d'autre.

27
Gearoid Murphy

Dans /etc/sudoers il y a un exemple de cela vers le bas du fichier:

## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL
10

Il existe une autre façon de le faire sans toucher au fichier sudoers.

  • Éditer /etc/pam.d/su et décommentez la ligne ci-dessous:

    auth           sufficient      pam_wheel.so trust use_uid
    
  • Ajoutez l'utilisateur au groupe wheel.

6
topdog

Il existe une autre façon de le faire sans toucher au fichier sudoers.

  • Éditer /etc/pam.d/Sudo et ajoutez la ligne ci-dessous:

    auth suffisant pam_wheel.so trust use_uid
  • Ajoutez l'utilisateur au groupe wheel.

Props à "topdog" et "Daniel Serodio" pour la réponse originale en ce qui concerne "su" plutôt que "Sudo". Je l'ai utilisé comme référence et j'ai copié et modifié sans vergogne leur message.

2
noabody

Il s'agit d'un ancien fil de discussion, mais il est intéressant de noter que personne n'a ajouté le système par défaut authenticate à cette liste de réponses. En utilisant une entrée de

Defaults  !authenticate

Dans le fichier sudoers, tout utilisateur pourrait utiliser ses commandes Sudo définies sans aucune authentification par mot de passe. Cela fait partie de la spécification Sudo par défaut et est portable sur toutes les plateformes, comme spécifié dans l'OP. Et, si vous devez l'étendre à un utilisateur spécifique, essayez

Defaults:<user_name>  !authenticate 
0
Thomas N