Aller au contenu

Comment retirer les droits sudo à un utilisateur dans Debian

Bonjour,

Bonnes pratiques de sécurité
#

Une machine sécurisée est une machine dans laquelle n’importe qui ne peut pas faire n’importe quoi.

Une machine sécurisée est une machine dans laquelle il faut se connecter à un compte qui bénéficie de privilèges élevés pour effectuer des tâches d’administration.

Ce peut être le compte root lui-même ou d’autres comptes, mais ce ne devrait pas être n’importe quel compte utilisateur, même si c’est le propriétaire de la machine.

C’est le comportement par défaut de Debian, et, spoiler, ce n’est pas un hasard : dans Debian, si vous faites cette erreur-là, c’est de votre plein gré…

Communication et vérifications préalables
#

Avant d’effectuer ces modifications, nous en parlons avec l’utilisateur concerné.

Nous effectuons un audit pour nous assurer que des données ou des tâches importantes ne sont pas actuellement gérées via son compte utilisateur.

Nous transférons les tâches ou données liées à l’administration sur un compte dédié à l’administration.

Comment retirer les privilèges sudo à un utilisateur
#

Pour retirer des privilèges sudo à un utilisateur, il suffit de le retirer du groupe sudo.

1
deluser user sudo

Nous allons également vérifier via la commande visudo que nous n’avons pas de ligne du type

1
user  ALL=(ALL:ALL) ALL

dans le fichier de configuration de sudo.

Nous ne devrions voir que

1
root    ALL=(ALL:ALL) ALL

ou, éventuellement, des comptes (ou des groupes de comptes) spécialement dédiés à l’administration et utilisés uniquement comme tels.

Comment vérifier qu’un utilisateur n’a plus les privilèges sudo
#

Pour vérifier que tout s’est bien passé,

  • côté utilisateur, nous tentons d’effectuer une commande avec sudo.
1
2
3
user@debian:~$ sudo ls
[sudo] Mot de passe de user : 
user n'est pas dans le fichier sudoers.
  • côté administrateur, nous contrôlons que le groupe sudo n’est plus dans la liste de cet utilisateur avec la commande :
1
groups user

Fermer la session utilisateur ouverte
#

Pour que les modifications prennent effet, il faut fermer la session utilisateur.

En principe nous ne devrions pas avoir à le faire en tant qu’administrateur, puisque nous communiquons clairement et lisiblement avec l’utilisateur.

Message système de rappel / avertissement
#

Nous pouvons envoyer un message via :

1
echo "Fermeture de votre session dans [à compléter]" | write user

mais attention : nous ne sommes pas sûrs que ce message sera effectivement vu.

Je le redis donc clairement : nous communiquons avec l’utilisateur et nous assurons qu’il a bien compris.

En principe, si nous faisons bien notre travail, l’utilisateur se déconnecte et se reconnecte de lui-même quand nous le lui indiquons.

Commandes pour fermer la session / les processus utilisateur
#

Voici toutefois les commandes qui peuvent nous être utiles si besoin.

La commande de fermeture de session :

1
loginctl terminate-user user

Pour vérifier qu’un utilisateur n’a plus de processus actif :

1
pgrep -u user

Si l’utilisateur a des processus bloqués, nous pouvons effectuer un

1
pkill -u user

Au plaisir,

Marc JESTIN
https://marcjestin.fr