Comment supprimer un utilisateur sous Linux (et supprimer chaque trace)

Supprimer un utilisateur sous Linux implique plus que vous ne le pensez. Si vous êtes un administrateur système, vous voudrez purger toutes les traces du compte et de son accès de vos systèmes. Nous vous montrerons les étapes à suivre.

Si vous souhaitez simplement supprimer un compte utilisateur de votre système et que vous n’êtes pas préoccupé par la fin des processus en cours et autres tâches de nettoyage, suivez les étapes de la section «Suppression du compte utilisateur» ci-dessous. Vous aurez besoin de la commande deluser sur les distributions basées sur Debian et de la commande userdel sur les autres distributions Linux.

Comptes d’utilisateurs sur Linux

Depuis le les premiers systèmes de partage de temps sont apparus au début des années 1960 et apportant avec eux la possibilité pour plusieurs utilisateurs de travailler sur un seul ordinateur, il était nécessaire d’isoler et de compartimenter les fichiers et les données de chaque utilisateur de tous les autres utilisateurs. Et donc les comptes utilisateurs—et mots de passe-étaient nés.

Les comptes d’utilisateurs ont une surcharge administrative. Ils doivent être créés lorsque l’utilisateur a besoin pour la première fois d’accéder à l’ordinateur. Ils doivent être supprimés lorsque cet accès n’est plus nécessaire. Sous Linux, il existe une séquence d’étapes à suivre afin de supprimer correctement et méthodiquement l’utilisateur, ses fichiers et son compte de l’ordinateur.

Si vous êtes l’administrateur système, cette responsabilité vous incombe. Voici comment procéder.

Notre scénario

Il existe un certain nombre de raisons pour lesquelles un compte peut devoir être supprimé. Un membre du personnel peut être transféré dans une autre équipe ou quitter complètement l’entreprise. Le compte peut avoir été configuré pour une collaboration à court terme avec un visiteur d’une autre entreprise. Les équipes sont courantes dans les universités, où les projets de recherche peuvent couvrir des départements, différentes universités et même des entités commerciales. À la fin du projet, l’administrateur système doit effectuer le ménage et supprimer les comptes inutiles.

Le pire des cas est celui où quelqu’un part sous un nuage à cause d’un délit. De tels événements se produisent généralement soudainement, avec peu d’avertissement préalable. Cela donne à l’administrateur système très peu de temps pour planifier et une urgence à verrouiller, fermer et supprimer le compte, avec une copie des fichiers de l’utilisateur sauvegardés au cas où ils seraient nécessaires pour des analyses après la fermeture.

Dans notre scénario, nous prétendons qu’un utilisateur, Eric, a fait quelque chose qui justifie son retrait immédiat des locaux. En ce moment, il n’en est pas conscient, il travaille toujours et est connecté. Dès que vous faites signe à la sécurité, il va être escorté hors du bâtiment.

  Comment nommer les dossiers du menu Démarrer sur Windows 10

Tout est réglé. Tous les yeux sont rivés sur toi.

Vérifiez la connexion

Voyons s’il est vraiment connecté et, s’il l’est, combien de sessions il travaille. Le qui commande listera les sessions actives.

who

qui dans une fenêtre de terminal

Eric est connecté une fois. Voyons quels processus il exécute.

Examen des processus de l’utilisateur

Nous pouvons utiliser la commande ps pour lister les processus que cet utilisateur exécute. L’option -u (utilisateur) nous permet de dire à ps de limiter sa sortie aux processus exécutés sous la propriété de ce compte utilisateur.

ps -u eric

ps -u eric dans une fenêtre de terminal

Nous pouvons voir les mêmes processus avec plus d’informations en utilisant la commande top. top a également une option -U (utilisateur) pour limiter la sortie aux processus appartenant à un seul utilisateur. Notez que cette fois, il s’agit d’un «U» majuscule.

top -U eric

top -U eric dans une fenêtre de terminal

Nous pouvons voir la mémoire et l’utilisation du processeur de chaque tâche, et pouvons rapidement rechercher tout ce qui présente une activité suspecte. Nous sommes sur le point de tuer de force tous ses processus, il est donc plus sûr de prendre un moment pour examiner rapidement les processus, et vérifier et s’assurer que les autres utilisateurs ne seront pas gênés lorsque vous mettrez fin aux processus du compte utilisateur eric.

Sortie de top -U eric dans une fenêtre de terminal

Il ne semble pas qu’il fasse grand-chose, mais en utilise moins pour afficher un fichier. Nous sommes sûrs de continuer. Mais avant de tuer ses processus, nous allons geler le compte en verrouillant le mot de passe.

Verrouiller le compte

Nous allons verrouiller le compte avant de tuer les processus car lorsque nous tuons les processus, l’utilisateur déconnecte l’utilisateur. Si nous avons déjà changé son mot de passe, il ne pourra pas se reconnecter.

Les mots de passe utilisateur chiffrés sont stockés dans le fichier / etc / shadow. Normalement, vous ne vous soucierez pas de ces étapes suivantes, mais pour que vous puissiez voir ce qui se passe dans le fichier / etc / shadow lorsque vous verrouillez le compte, nous ferons un léger détour. Nous pouvons utiliser la commande suivante pour regarder les deux premiers champs de l’entrée du compte utilisateur eric.

sudo awk -F: '/eric/ {print $1,$2}' /etc/shadow

sudo awk -F: '/ eric / {print $ 1, $ 2}' / etc / shadow dans une fenêtre de terminal

La commande awk analyse les champs des fichiers texte et les manipule éventuellement. Nous utilisons l’option -F (séparateur de champ) pour indiquer à awk que le fichier utilise un signe deux-points «:» pour séparer les champs. Nous allons chercher une ligne contenant le motif «eric». Pour les lignes correspondantes, nous imprimerons les premier et deuxième champs. Ce sont le nom du compte et le mot de passe crypté.

  Comment créer une affiche à l'aide de Microsoft PowerPoint

L’entrée du compte utilisateur eric est imprimée pour nous.

Pour verrouiller le compte, nous utilisons la commande passwd. Nous utiliserons l’option -l (lock) et transmettre le nom du compte utilisateur à verrouiller.

sudo passwd -l eric

sudo passwd -l eric dans une fenêtre de terminal

Si nous vérifions à nouveau le fichier / etc / passwd, nous verrons ce qui s’est passé.

sudo awk -F: '/eric/ {print $1,$2}' /etc/shadow

sudo awk -F: '/ eric / {print $ 1, $ 2}' / etc / shadow dans une fenêtre de terminal

Un point d’exclamation a été ajouté au début du mot de passe chiffré. Il n’écrase pas le premier caractère, il est simplement ajouté au début du mot de passe. C’est tout ce qui est nécessaire pour empêcher un utilisateur de se connecter à ce compte.

Maintenant que nous avons empêché l’utilisateur de se reconnecter, nous pouvons tuer ses processus et le déconnecter.

Tuer les processus

Il existe différentes manières de tuer les processus d’un utilisateur, mais la commande présentée ici est largement disponible et est une implémentation plus moderne que certaines des alternatives. La commande pkill trouvera et tuera les processus. Nous transmettons le signal KILL et utilisons l’option -u (utilisateur).

sudo pkill -KILL -u eric

sudo pkill -KILL -u eric dans une fenêtre de terminal

Vous êtes renvoyé à l’invite de commande d’une manière résolument anti-climactique. Pour nous assurer que quelque chose s’est passé, vérifions à nouveau qui:

who

qui dans une fenêtre de terminal

Sa session est terminée. Il a été déconnecté et ses processus ont été arrêtés. Cela a pris une partie de l’urgence de la situation. Maintenant, nous pouvons nous détendre un peu et continuer avec le reste du nettoyage pendant que la sécurité se dirige vers le bureau d’Eric.

Archivage du répertoire personnel de l’utilisateur

Il n’est pas hors de question que dans un scénario comme celui-ci, l’accès aux fichiers de l’utilisateur soit requis à l’avenir. Soit dans le cadre d’une enquête, soit simplement parce que leur remplaçant peut avoir besoin de se référer au travail de leur prédécesseur. Nous utiliserons la commande tar pour archiver tout leur répertoire personnel.

Les options que nous utilisons sont:

c: Créez un fichier d’archive.
f: utilisez le nom de fichier spécifié pour le nom de l’archive.
j: Utilisez la compression bzip2.
v: Fournissez une sortie détaillée lors de la création de l’archive.

sudo tar cfjv eric-20200820.tar.bz /home/eric

sudo tar cfjv eric-20200820.tar.bz / home / eric dans une fenêtre de terminal

Une grande partie de la sortie d’écran défilera dans la fenêtre du terminal. Pour vérifier que l’archive a été créée, utilisez la commande ls. Nous utilisons les options -l (format long) et -h (lisible par l’homme).

ls -lh eric-20200802.tar.bz

sudo tar cfjv eric-20200820.tar.bz / home / eric dans une fenêtre de terminal

Un fichier de 722 Mo a été créé. Cela peut être copié dans un endroit sûr pour un examen ultérieur.

Suppression des tâches cron

Nous ferions mieux de vérifier s’il y a des tâches cron prévues pour le compte utilisateur eric. Un travail cron est une commande qui est déclenchée à des heures ou à des intervalles spécifiés. Nous pouvons vérifier s’il y a des tâches cron planifiées pour ce compte utilisateur en utilisant ls:

sudo ls -lh /var/spool/cron/crontabs/eric

sudo ls -lh / var / spool / cron / crontabs / eric dans une fenêtre de terminal

Si quelque chose existe à cet emplacement, cela signifie qu’il y a des tâches cron en file d’attente pour ce compte d’utilisateur. Nous pouvons les supprimer avec cette commande crontab. L’option -r (supprimer) supprimera les travaux et l’option -u (utilisateur) indique à crontab dont les emplois supprimer.

sudo crontab -r -u eric

sudo crontab -r -u eric dans une fenêtre de terminal

Les travaux sont supprimés en silence. Pour autant que nous sachions, si Eric avait soupçonné qu’il était sur le point d’être expulsé, il aurait pu planifier un travail malveillant. Cette étape est la meilleure pratique.

  Nouvelles fonctionnalités de Firefox 42 pour ordinateur de bureau et Android

Suppression des travaux d’impression

Peut-être que l’utilisateur avait des travaux d’impression en attente? Juste pour être sûr, nous pouvons purger la file d’attente d’impression de tous les travaux appartenant au compte utilisateur eric. La commande lprm supprime les travaux de la file d’attente d’impression. L’option -U (nom d’utilisateur) vous permet de supprimer les travaux appartenant au compte d’utilisateur nommé:

lprm -U eric

lprm -U eric dans une fenêtre de terminal

Les travaux sont supprimés et vous revenez à la ligne de commande.

Suppression du compte utilisateur

Nous avons déjà sauvegardé les fichiers du répertoire / home / eric /, nous pouvons donc continuer et supprimer le compte utilisateur et supprimer le répertoire / home / eric / en même temps.

La commande à utiliser dépend de la distribution de Linux que vous utilisez. Pour Distributions Linux basées sur Debian, la commande est deluser, et pour le reste du monde Linux, c’est userdel.

En fait, sur Ubuntu, les deux commandes sont disponibles. Je m’attendais à moitié à ce que l’un soit un alias de l’autre, mais ce sont des binaires distincts.

type deluser
type userdel

tapez deluser dans une fenêtre de terminal

Bien qu’ils soient tous les deux disponibles, la recommandation est d’utiliser deluser sur les distributions dérivées de Debian:

«Userdel est un utilitaire de bas niveau pour supprimer des utilisateurs. Sur Debian, les administrateurs devraient généralement utiliser deluser (8) à la place. »

C’est assez clair, donc la commande à utiliser sur cet ordinateur Ubuntu est deluser. Parce que nous voulons également que leur répertoire personnel soit supprimé, nous utilisons l’indicateur –remove-home:

sudo deluser --remove-home eric

sudo deluser --remove-home eric dans une fenêtre de terminal

La commande à utiliser pour les distributions non-Debian est userdel, avec l’indicateur –remove:

sudo userdel --remove eric

Toutes les traces du compte utilisateur eric ont été effacées. Nous pouvons vérifier que le répertoire / home / eric / a bien été supprimé:

ls /home

ls / home dans une fenêtre de terminal

Le groupe eric a également été supprimé car le compte utilisateur eric était la seule entrée. Nous pouvons vérifier cela assez facilement en acheminant le contenu de / etc / group via grep:

sudo less /etc/group | grep eric

sudo moins / etc / group | grep eric dans une fenêtre de terminal

C’est un wrap

Eric, pour ses péchés, est parti. La sécurité le fait toujours sortir du bâtiment et vous avez déjà sécurisé et archivé ses fichiers, supprimé son compte et purgé le système de tout résidu.

La précision l’emporte toujours sur la vitesse. Assurez-vous de considérer chaque étape avant de la faire. Vous ne voulez pas que quelqu’un s’approche de votre bureau et vous dise « Non, l’autre Eric. »