Recherche de site Web

Comment désactiver l'accès « su » pour les utilisateurs Sudo


La commande su est une commande Linux spéciale qui vous permet d'exécuter une commande en tant qu'autre utilisateur et groupe. Il vous permet également de passer au compte root (s'il est exécuté sans aucun argument) ou à un autre compte utilisateur spécifié.

Par défaut, tous les utilisateurs sont autorisés à accéder à la commande su. Mais en tant qu'administrateur système, vous pouvez désactiver l'accès su pour un utilisateur ou un groupe d'utilisateurs, en utilisant le fichier sudoers comme expliqué ci-dessous.

Le fichier sudoers pilote le plugin de politique de sécurité sudo qui détermine les privilèges sudo d'un utilisateur. La commande sudo permet aux utilisateurs d'exécuter des programmes avec les privilèges de sécurité d'un autre utilisateur (par défaut, en tant qu'utilisateur root).

Pour passer à un autre compte utilisateur, un utilisateur peut exécuter la commande su à partir de sa session de connexion actuelle, comme indiqué. Dans cet exemple, l'utilisateur aaronk passe à un compte testuser. L'utilisateur aaronk sera invité à saisir le mot de passe du compte testuser :

su testuser

Pour passer au compte root, un utilisateur doit disposer du mot de passe root ou disposer des privilèges nécessaires pour appeler la commande sudo. En d'autres termes, l'utilisateur doit exister dans le fichier sudoers. Dans cet exemple, l'utilisateur aaronk (un utilisateur sudo) passe au compte root.

Après avoir invoqué sudo, l'utilisateur aaronk est invité à saisir son mot de passe, s'il est valide, l'utilisateur a accès à un shell interactif en tant que root :

sudo su

Désactiver su Access pour un utilisateur Sudo

Pour désactiver l'accès su pour un utilisateur sudo, par exemple l'utilisateur aaronk ci-dessus, commencez par sauvegarder le fichier sudoers d'origine situé dans /etc/sudoers comme suit:

sudo cp /etc/sudoers /etc/sudoers.bak

Ouvrez ensuite le fichier sudoers à l'aide de la commande suivante. Notez qu'il n'est pas recommandé d'éditer le fichier sudoers à la main, utilisez toujours la commande visudo :

 
sudo visudo

Sous la section de commande alias, créez l'alias suivant :

Cmnd_Alias DISABLE_SU = /bin/su

Ajoutez ensuite la ligne suivante à la fin du fichier, remplacez le nom d'utilisateur aaronk par l'utilisateur pour lequel vous souhaitez désactiver l'accès su :

aaronk ALL=(ALL) NOPASSWD: ALL, !DISABLE_SU

Enregistrez le fichier et fermez-le.

Testez ensuite pour vérifier que la configuration fonctionne comme suit. Le système devrait renvoyer un message d'erreur comme celui-ci : « Désolé, l'utilisateur aaronk n'est pas autorisé à exécuter '/bin/su' en tant que root sur tecmint. ».

sudo su

Désactiver l'accès su pour un groupe d'utilisateurs Sudo

Vous pouvez également désactiver l'accès su pour un groupe d'utilisateurs sudo. Par exemple pour désactiver l'accès su pour tous les utilisateurs du groupe admin, modifiez la ligne :

%admin ALL=(ALL) ALL

pour ça:

%admin ALL=(ALL) ALL, !DISABLE_SU

Enregistrez le fichier et fermez-le.

Pour ajouter un utilisateur au groupe admin, exécutez la commande usermod (remplacez le nom d'utilisateur par l'utilisateur réel) :

sudo usermod -aG  admin  username

Pour plus d'informations sur su, sudo et sudoers, consultez leurs pages de manuel :

man su
man sudo
man sudoers