Comment installer `sudo` sans mot de passe sous Linux?


157

Comment sudoconfigurer un accès sans mot de passe sur les distributions RHEL (Fedora, CentOS, etc.) ou Ubuntu? (Si c'est la même chose entre les distributions, c'est encore mieux!)

Paramètre: équipement personnel et / ou de laboratoire / de formation sans souci d'accès non autorisé (c.-à-d. Que les appareils sont sur des réseaux non publics et que tous les utilisateurs sont pleinement dignes de confiance et que le contenu des appareils est "simple".) .


1
La réponse de @Richipal est actuellement celle qui fonctionne le mieux avec le moins d’effort possible: il semble que les règles des sudoers s’appliquent dans l’ordre inverse.
A1an

2
Les règles @ a1an sont appliquées dans le même ordre que celui indiqué dans le fichier sudoers et, lorsqu'elles sont appliquées, elles se superposent les unes les autres. Par conséquent, si je ne veux pas du tout qu'une règle change, je la placerais vers la fin du fichier pour qu'elle soit appliquée en dernier et ne puisse pas être remplacée.
rsjethani

Réponses:


173

EDIT grâce au commentaire de medina: 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

to /etc/sudoers(à l'aide de la visudocommande, bien sûr), il permettra à tous les membres du groupe d' wheelexécuter des commandes sans fournir de mot de passe. Donc, je pense que la meilleure solution est de mettre tous vos utilisateurs dans un groupe et de mettre une ligne comme celle-ci sudoers- vous devez évidemment remplacer wheelpar le groupe que vous utilisez.

Sinon, vous pouvez définir un alias d'utilisateur,

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

et utiliser ça:

EVERYONE       ALL = (ALL) NOPASSWD: ALL

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


2
Ne ALLfonctionne pas plutôt que *de spécifier tous les utilisateurs? Voir l'exemple dans sudoers(5).
médina

1
@medina: c'est ce qui s'est passé, c'est ce que j'ai raté lorsque j'ai lu la page de manuel Je vais éditer.
David Z

6
sous Ubuntu, créez un fichier sous /etc/sudoers.d et mettez-y ces entrées, cela vous évitera d'avoir à éditer les sudoers
Xetius

1
Dans CentOS7, cette entrée est présente par défaut, elle est simplement commentée.
killjoy

1
Seulement réussi à l'utiliser dans centOS par copier / coller, a échoué à chaque tentative de taper directement la configuration. Mais le résultat semble identique sauf pour les espaces ...
MUY Belgique

97

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

username ALL=(ALL) NOPASSWD: ALL

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

#includedir /etc/sudoers.d

1
//, Cela semble être le meilleur moyen de le faire, en particulier lorsque certaines applications ajouteront leurs propres règles aux utilisateurs du système, Richipal. Plus d'infos sur sudoers.d: sudo.ws/man/1.8.13/sudoers.man.html
Nathan Basanese

1
//, seriez-vous disposé à ajouter certains diagnostics de Gearoid Murphy à votre réponse?
Nathan Basanese

1
Merci pour cette clarification. L'ajouter après la ligne #includedir /etc/sudoers.d semble important dans CentOS 7, alors qu'il semble bien fonctionner pour avoir la ligne plus tôt dans le fichier dans CentOS 6.
dmohr le

3
Le problème consistant à ignorer NOPASSWD de% wheel semble découler de /etc/sudoers.d/USERNAMEl'annulation de l'autorisation NOPASSWD du groupe. L'application de NOPASSWD dans /etc/sudoers.d/USERNAMErésout le problème.
anguille ghEEz le

1
Il est important de faire de gros progrès après l'inclusion
Theodore Howell

27

J'ai essayé toutes les réponses sur cette page, sans résultats utiles. Finalement, j'ai compris, utilisez cette commande pour lister 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 les 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 à me demander. La règle en question était les utilisateurs admin:

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

Une fois que j'ai commenté ceci, j'ai été capable de sudo sans mot de passe. J'espère que ceci est utile à quelqu'un d'autre.


1
Ahhh, merci! Cela me rendait dingue ... dans mon cas, mon utilisateur faisait partie du groupe "sudo" ainsi que de "admin" (que j'ai créé), et les autorisations sur chacun étaient mal appariées, comme dans votre cas. . Maintenant ça marche! :)
neezer

14
Commenter une sortie de ligne est un instrument contondant. Vous serez peut-être intéressé d'apprendre que "sudo lit le fichier sudoers et applique les autorisations dans l'ordre croissant. Ainsi, la dernière ligne du fichier remplacera tout conflit précédent", selon ubuntuforums.org/showthread.php?t=1132821 - - et cela a fonctionné pour moi.
David J.

10

Dans /etc/sudoerscet exemple, vous trouverez un exemple de cela vers le bas du fichier:

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

2
cet échantillon n'était pas dans le mien - mais merci!
Warren

1
Comme votre réponse succincte
M. Pei le

6

Il existe un autre moyen de le faire sans toucher au fichier sudoers.

  • Éditez /etc/pam.d/suet décommentez la ligne ci-dessous:

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


2

Il existe un autre moyen de le faire sans toucher au fichier sudoers.

  • Editez /etc/pam.d/sudoet ajoutez la ligne ci-dessous:

    autorisation suffisante pam_wheel.so trust use_uid
  • Ajoutez l'utilisateur au wheelgroupe.

Les accessoires à "topdog" et "Daniel Serodio" pour la réponse originale en ce qui concerne "su" plutôt que "sudo". J'ai utilisé cela comme référence et j'ai copié et modifié sans vergogne leur message.


1
Je pense qu'au lieu de copier mot pour mot, il serait préférable de les créditer, mais soyez clair sur la façon dont vos réponses diffèrent. Je suppose que cela permet l'utilisation d'un mot de passe sans mot de passe su, au lieu de / ainsi que sans mot de passe sudo? L'ajout de Daniel n'est qu'un formatage, au fait.
mwfearnley
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.