Comment exécuter sudo sans mot de passe sous Linux

Vous pouvez exécuter sudo sans mot de passe en ajoutant une NOPASSWDrègle à la politique sudoers. La méthode la plus sûre consiste à autoriser uniquement la commande administrative dont vous avez besoin, plutôt que de désactiver la demande de mot de passe pour chaque commande sudo.

Avant toute modification, n'oubliez pas l'effet de ce paramètre : toute personne ou tout système prenant le contrôle de votre compte connecté pourra exécuter la commande autorisée en tant que superutilisateur (root) sans authentification supplémentaire. Le manuel sudoers indique NOPASSWDque l'option correspondante permet de supprimer l'authentification pour ces commandes.

Pourquoi sudo -s n'est pas une méthode sudo sans mot de passe

L'ancienne méthode d'exécution sudo -sne configure pas réellement l'utilisation de sudo sans mot de passe. Elle -slance un shell sous sudo, mais la politique de sudo peut toujours exiger une authentification préalable. Il est également possible que plusieurs commandes s'exécutent sans autre invite, car sudo conserve généralement en cache les authentifications réussies pendant une courte période. Ceci est différent d'une NOPASSWDrègle permanente.

Exécuter une commande sudo spécifique sans mot de passe

Cet exemple permet à l'utilisateur alexde redémarrer Nginx sans mot de passe. Remplacez le nom d'utilisateur, la commande et les arguments par les valeurs correspondant à votre système.

1. Confirmez votre nom d'utilisateur et le chemin de commande

Exécutez les commandes suivantes en tant qu'utilisateur normal :

whoami
command -v systemctl

La deuxième commande peut renvoyer une valeur /usr/bin/systemctl. Utilisez le chemin indiqué par votre système. Les règles sudoers doivent identifier les commandes par leur chemin complet.

Terminal Linux affichant whoami et la commande -v systemctl pour identifier le nom d'utilisateur et le chemin complet de la commande
Vérifiez le nom du compte et le chemin complet de la commande avant de rédiger la règle sudoers.

2. Créez un fichier de dépôt dédié aux sudoers

Au lieu de modifier /etc/sudoersdirectement, utilisez visudoun fichier situé dans /etc/sudoers.d:

sudo visudo -f /etc/sudoers.d/alex-nopasswd

Vous devrez normalement saisir votre mot de passe lors de cette étape de configuration. L'utilisation de visudovisudo est préférable car elle vérifie la syntaxe avant d'accepter les modifications. Le manuel de visudo pour Ubuntu indique également que visudovisudo verrouille le fichier pendant l'édition et vérifie les erreurs d'analyse syntaxique.

Ouvrir un fichier sudoers.d dédié dans un terminal Linux avec la commande sudo visudo pour une configuration sudo sans mot de passe.
Ouvrez un fichier de configuration sudoers séparé visudoplutôt que de modifier le fichier de stratégie principal avec un éditeur de texte normal.

3. Ajoutez la règle NOPASSWD la plus restrictive dont vous avez besoin.

Pour l'exemple de redémarrage de Nginx, ajoutez :

alex ALL=(root) NOPASSWD: /usr/bin/systemctl restart nginx

Cette règle autorise uniquement l'exécution, sans authentification, de la commande et des arguments spécifiés en tant que superutilisateur (root). Pour autoriser plusieurs commandes spécifiques, séparez-les par des virgules.

Si vous souhaitez délibérément que chaque commande sudo d'un utilisateur s'exécute sans authentification, la règle générale est la suivante :

alex ALL=(ALL:ALL) NOPASSWD: ALL

Cette méthode est beaucoup moins sécurisée et constitue rarement le meilleur choix sur un poste de travail ou un système partagé. Une session utilisateur compromise aurait un accès direct à des privilèges root illimités.

Éditeur Nano affichant une règle NOPASSWD pour les utilisateurs sudoers afin de redémarrer nginx et un exemple commenté sans restriction
Une règle spécifique à une commande est plus sûre que l'octroi d'une autorisation NOPASSWD: ALL.

4. Valider et tester la règle

Après avoir enregistré et quitté l'éditeur, consultez la politique sudoers complète :

sudo visudo -c

Ne négligez pas cette vérification. La visudodocumentation explique que la politique sudoers est évaluée dans son ensemble ; par conséquent, la vérification de la configuration complète permet de détecter les problèmes pouvant concerner des fichiers inclus.

Ensuite, invalidez toute information d'identification sudo mise en cache et effectuez un test non interactif :

sudo -k
sudo -n /usr/bin/systemctl restart nginx

Cette -noption indique à sudo de ne pas demander de mot de passe. Si la règle est respectée, la commande s'exécute sans demander de mot de passe. Si une authentification est toujours requise, sudo se termine en affichant une erreur au lieu d'attendre une saisie. Ceci est sudo -nparticulièrement utile pour les scripts qui ne doivent jamais s'arrêter à l'invite de mot de passe.

Terminal Linux : validation des droits sudo avec visudo -c, effacement des informations d'identification mises en cache et test de la commande NOPASSWD avec sudo -n
Validez la politique, effacez les informations d'identification mises en cache et utilisez-la sudo -npour confirmer que la commande ne nécessite effectivement plus de mot de passe.

Dépannage de sudo sans mot de passe

  • La commande demande toujours un mot de passe : vérifiez que le nom d’utilisateur, le chemin de la commande et les arguments correspondent exactement à l’entrée sudoers.
  • Cette commande n'est pas autorisée : exécutez-la sudo -lpour consulter les privilèges attribués à votre compte.
  • Le fichier de configuration semble être ignoré : utilisez un nom de fichier simple tel que alex-nopasswd. Certaines configurations sudoers ignorent les fichiers /etc/sudoers.ddont le nom contient un point ou se termine par un suffixe de type sauvegarde.
  • Vous devez annuler la modification : rouvrez le menu déroulant sudo visudo -f /etc/sudoers.d/alex-nopasswd, supprimez ou restreignez la règle, enregistrez et exécutez sudo visudo -cà nouveau.

Bonnes pratiques

N'utilisez sudo sans mot de passe qu'en cas de nécessité absolue, par exemple pour une action de service strictement contrôlée ou une tâche d'automatisation. Privilégiez un chemin de commande et des arguments précis, évitez NOPASSWD: ALLles raccourcis clavier autant que possible et limitez la taille de la règle sudoers au strict nécessaire. Cela préserve la majeure partie de la protection de sudo tout en supprimant l'invite de mot de passe lorsque cela est réellement indispensable.

Laisser un commentaire

Comment créer des machines virtuelles sur un serveur Ubuntu avec Cockpit

Comment créer des machines virtuelles sur un serveur Ubuntu avec Cockpit

Installez Cockpit et son module complémentaire Machines sur Ubuntu Server, puis choisissez une image ISO, attribuez des ressources invitées et terminez la configuration du système d'exploitation dans votre navigateur.

Comment configurer un montage NFS sur un serveur Linux avec Cockpit

Comment configurer un montage NFS sur un serveur Linux avec Cockpit

Montez une partition NFS existante depuis la page Stockage de Cockpit, choisissez un chemin local et les options de démarrage ou de lecture seule, puis vérifiez le partage sous Linux.

Comment utiliser le gestionnaire de paquets Nala sous Ubuntu

Comment utiliser le gestionnaire de paquets Nala sous Ubuntu

Installez Nala depuis les dépôts d'Ubuntu, puis utilisez-le pour rechercher, installer, supprimer et mettre à jour des paquets avec des résumés de transactions clairs.

Comment installer LibreCAD sous Linux : Ubuntu, Fedora, Arch et autres.

Comment installer LibreCAD sous Linux : Ubuntu, Fedora, Arch et autres.

Installez LibreCAD sur Ubuntu, Debian, Fedora, Arch ou openSUSE avec le gestionnaire de paquets, ou choisissez le Flatpak ou l'AppImage officiels si votre distribution ne dispose pas du paquet.

Comment installer et activer le thème d'icônes Kora sous Linux

Comment installer et activer le thème d'icônes Kora sous Linux

Installez le thème d'icônes Kora actuel sur Linux pour un utilisateur ou pour l'ensemble du système, puis choisissez sa variante à dossiers bleus ou à dossiers gris dans GNOME, KDE Plasma ou Xfce.

Comment installer Linux Mint 21 avec des partitions manuelles

Comment installer Linux Mint 21 avec des partitions manuelles

Installez Linux Mint 21.3 depuis une clé USB, choisissez Autre chose et attribuez en toute sécurité les partitions EFI, swap, racine et, éventuellement, la partition home.

Comment utiliser les snapshots sur openSUSE avec Snapper

Comment utiliser les snapshots sur openSUSE avec Snapper

Créez et comparez des instantanés openSUSE, restaurez un fichier sélectionné ou restaurez un système pris en charge depuis GRUB avec Snapper et Btrfs.

Comment installer les derniers pilotes NVIDIA sous Linux

Comment installer les derniers pilotes NVIDIA sous Linux

Installez le pilote NVIDIA compatible le plus récent sur Ubuntu, Debian, Arch, Fedora ou openSUSE en suivant les étapes du gestionnaire de paquets, les vérifications de démarrage sécurisé et la vérification.

Comment se connecter à un PC Windows depuis Linux avec Remmina

Comment se connecter à un PC Windows depuis Linux avec Remmina

Connectez-vous à un PC Windows depuis Linux avec Remmina : activez le protocole RDP, installez le plugin RDP, configurez un profil et résolvez les problèmes de connexion courants.

Comment installer les applications Adobe Creative Cloud sur Linux avec AdobeWine

Comment installer les applications Adobe Creative Cloud sur Linux avec AdobeWine

Adobe ne propose pas d'installateur natif pour Linux dans Creative Cloud. Suivez la procédure d'installation d'Adobe Wine, vérifiez la configuration matérielle requise et prenez connaissance des applications encore expérimentales.