Limitation de l'accès sudo avec le fichier sudoers
Dans cette étape, vous allez apprendre à restreindre les privilèges sudo d'un utilisateur à des commandes spécifiques en utilisant le fichier sudoers. Cela met en œuvre le principe du moindre privilège, qui stipule que les utilisateurs ne devraient avoir que les privilèges minimums nécessaires pour effectuer leurs tâches.
Comprendre le fichier sudoers
Le fichier /etc/sudoers contrôle qui peut utiliser la commande sudo et quelles commandes ils peuvent exécuter. Ce fichier ne devrait jamais être édité directement avec un éditeur de texte classique, car des erreurs de syntaxe pourraient vous empêcher d'accéder au système. Au lieu de cela, utilisez toujours la commande visudo, qui vérifie les erreurs de syntaxe avant d'enregistrer.
Éditer le fichier sudoers
Pour éditer le fichier sudoers en toute sécurité, utilisez la commande visudo :
sudo visudo
Cela ouvrira le fichier sudoers dans l'éditeur par défaut (généralement nano ou vi).
Comprendre la syntaxe du fichier sudoers
La syntaxe de base pour une entrée sudo dans le fichier sudoers est la suivante :
user_or_group host=(run_as_user:run_as_group) NOPASSWD: commands
Où :
user_or_group : L'utilisateur ou le groupe auquel cette règle s'applique
host : Le nom d'hôte où cette règle s'applique (généralement ALL)
run_as_user : L'utilisateur sous lequel les commandes seront exécutées (généralement ALL, ce qui signifie root)
run_as_group : Le groupe sous lequel les commandes seront exécutées (peut être omis)
NOPASSWD : Étiquette optionnelle qui permet d'exécuter les commandes sans entrer de mot de passe
commands : Les commandes spécifiques qui peuvent être exécutées avec sudo
Ajouter un accès sudo restreint
Faites défiler jusqu'à la fin du fichier et ajoutez la ligne suivante pour accorder à trusted_advisor la permission d'exécuter uniquement les commandes cp et mv sans mot de passe :
trusted_advisor ALL=(ALL) NOPASSWD: /bin/cp, /bin/mv
Pour enregistrer le fichier dans nano, appuyez sur Ctrl+O, puis sur Entrée, et pour quitter, appuyez sur Ctrl+X.
Tester l'accès sudo restreint
Maintenant, testons si l'accès sudo restreint fonctionne comme prévu. Tout d'abord, créons un fichier de test dans le répertoire actuel :
echo "This is a test file" > important_file.txt
Maintenant, basculez sur l'utilisateur trusted_advisor :
su - trusted_advisor
Entrez le mot de passe lorsque vous y êtes invité.
Essayez de copier le fichier dans le répertoire racine, ce qui devrait être autorisé :
sudo cp /home/labex/project/important_file.txt /root/
Cela devrait réussir sans demander de mot de passe.
Maintenant, essayez d'exécuter une commande qui n'est pas dans la liste autorisée, comme cat :
sudo cat /root/important_file.txt
Vous devriez recevoir une erreur de permission refusée car cat n'est pas dans la liste des commandes autorisées.
Enfin, vérifiez que le fichier a été copié dans le répertoire racine :
sudo ls /root/
Vous devriez voir important_file.txt dans la sortie.
Quittez la session de l'utilisateur trusted_advisor :
exit
Supprimer le fichier de test
Pour nettoyer, supprimez le fichier de test :
sudo rm important_file.txt