Le sudo
La commande permet aux utilisateurs de confiance d'exécuter des programmes en tant qu'autre utilisateur, par défaut l'utilisateur root. Si vous passez beaucoup de temps sur la ligne de commande, sudo
est l'une des commandes que vous utiliserez fréquemment.
Habituellement, pour accorder l'accès sudo à un utilisateur, vous devez ajouter l'utilisateur au groupe sudo défini dans le sudoers
dossier. Sur Debian, Ubuntu et leurs dérivés, les membres du groupe sudo
reçoivent des privilèges sudo alors que sur les distributions basées sur RedHat comme CentOS et Fedora, le nom du groupe sudo est wheel
.
Chaque membre de ce groupe sera invité à entrer le mot de passe avant d'exécuter une commande sudo. Cela ajoute une couche de sécurité supplémentaire et c'est le moyen préféré d'accorder des privilèges sudo aux utilisateurs.
Cependant, dans certaines situations, comme l'exécution de scripts automatisés, vous devrez peut-être configurer le fichier sudoers et autoriser certains utilisateurs à exécuter sudo
commandes sans qu'on vous demande le mot de passe.
Ajout d'un utilisateur au fichier Sudoers #
Le fichier sudoers contient des informations qui déterminent les privilèges sudo d'un utilisateur et d'un groupe.
Vous pouvez configurer l'accès utilisateur sudo en modifiant le fichier sudoers ou en ajoutant un fichier de configuration au /etc/sudoers.d
annuaire. Les fichiers créés dans ce répertoire seront inclus dans le fichier sudoers.
Avant d'apporter des modifications, il est conseillé de sauvegarder le fichier actuel :
sudo cp /etc/sudoers{,.backup_$(date +%Y%m%d)}
La commande date ajoutera la date actuelle au nom du fichier de sauvegarde.
Ouvrez le /etc/sudoers
fichier avec le visudo
commande :
sudo visudo
Lorsque vous apportez des modifications au fichier sudoers, utilisez toujours visudo
. Cette commande vérifie le fichier après édition, et s'il y a une erreur de syntaxe, elle n'enregistrera pas les modifications. Si vous ouvrez le fichier avec un éditeur de texte, une erreur de syntaxe entraînera la perte de l'accès sudo.
Sur la plupart des systèmes, le visudo
la commande ouvre le /etc/sudoers
fichier avec l'éditeur de texte vim. Si vous n'avez pas d'expérience avec vim, vous pouvez utiliser un autre éditeur de texte. Par exemple, pour changer l'éditeur en GNU nano, vous exécuterez :
sudo EDITOR=nano visudo
Faites défiler jusqu'à la fin du fichier et ajoutez la ligne suivante qui permettra à l'utilisateur "linuxize" d'exécuter n'importe quelle commande avec sudo
sans qu'on vous demande de mot de passe :
linuxize ALL=(ALL) NOPASSWD:ALL
N'oubliez pas de remplacer "linuxize" par le nom d'utilisateur auquel vous souhaitez accorder l'accès.
Si vous souhaitez autoriser l'utilisateur à exécuter uniquement des commandes spécifiques sans entrer de mot de passe, spécifiez les commandes après le NOPASSWD
mot-clé.
Par exemple, pour autoriser uniquement le mkdir
et mv
commandes que vous utiliseriez :
linuxize ALL=(ALL) NOPASSWD:/bin/mkdir,/bin/mv
Une fois terminé, enregistrez le fichier et quittez l'éditeur.
Utilisation de /etc/sudoers.d
#
Au lieu de modifier le fichier sudoers, vous pouvez créer un nouveau fichier avec les règles d'autorisation dans /etc/sudoers.d
annuaire. Cette approche rend la gestion des privilèges sudo plus maintenable.
Ouvrez votre éditeur de texte et créez le fichier :
sudo nano /etc/sudoers.d/linuxize
Vous pouvez nommer le fichier comme vous le souhaitez, mais il est généralement préférable d'utiliser le nom d'utilisateur comme nom de fichier.
/etc/sudoers.d/linuxizeAjoutez la même règle que vous ajouteriez au fichier sudoers :
linuxize ALL=(ALL) NOPASSWD:ALL
Enfin, enregistrez le fichier et fermez l'éditeur.
Conclusion #
Nous vous avons montré comment éditer le /etc/sudoers
afin que vous puissiez exécuter sudo
commandes sans saisir de mot de passe. Ceci est utile lorsque vous avez des scripts dans lesquels un utilisateur non root doit exécuter des tâches administratives.
Si vous avez des questions, n'hésitez pas à laisser un commentaire.