Agence web » Actualités du digital » Comment supprimer un utilisateur sous Linux (et supprimer ses traces)

Comment supprimer un utilisateur sous Linux (et supprimer ses traces)

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

Si vous souhaitez simplement supprimer un compte d'utilisateur de votre système et que vous ne souhaitez pas interrompre les processus en cours et autres tâches de nettoyage, suivez les étapes de la section «Suppression du compte d'utilisateur» ci-dessous. Vous aurez besoin du deluser commande sur les distributions basées sur Debian et userdel sur d'autres distributions Linux.

Comptes d'utilisateurs sous Linux

Depuis que les premiers systèmes de temps partagé sont apparus au début des années 1960 et ont permis à plusieurs utilisateurs de travailler sur un seul ordinateur, il a été nécessaire d'isoler et de compartimenter les fichiers et les données de chaque utilisateur de tous les autres utilisateurs. C'est ainsi que les comptes d'utilisateurs et les mots de passe sont nés.

Les comptes d'utilisateurs ont des frais généraux administratifs. Ils doivent être créés lorsque l'utilisateur a d'abord besoin 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 pour 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 doit ê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 le monde universitaire, où les projets de recherche peuvent s'étendre à 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 lorsque 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 pour verrouiller, fermer et supprimer le compte – avec une copie des fichiers de l'utilisateur sauvegardés au cas où ils seraient nécessaires pour toute analyse judiciaire post-fermeture.

Dans notre scénario, nous prétendons qu'un utilisateur, Eric, a fait quelque chose qui justifie son retrait immédiat des lieux. En ce moment, il ne le sait pas, il travaille toujours et s'est connecté. Dès que vous ferez un signe de tête à la sécurité, il sera escorté hors du bâtiment.

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

Vérifiez la connexion

Voyons s'il est vraiment connecté et, s'il l'est, avec combien de sessions il travaille. le who La commande répertorie les sessions actives.

who

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

Révision des processus de l'utilisateur

Nous pouvons utiliser le ps pour répertorier les processus exécutés par cet utilisateur. le -u L'option (utilisateur) nous permet de dire ps pour limiter sa sortie aux processus exécutés sous la propriété de ce compte d'utilisateur.

ps -u eric

Nous pouvons voir les mêmes processus avec plus d'informations en utilisant le top commander. top a également un -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

Nous pouvons voir la mémoire et l'utilisation du processeur de chaque tâche et rechercher rapidement 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 vous assurer que les autres utilisateurs ne seront pas gênés lorsque vous fermez le compte utilisateur. ericLes processus.

On dirait qu'il ne fait pas grand-chose, juste en utilisant less pour afficher un fichier. Nous pouvons continuer en toute sécurité. Mais avant de tuer ses processus, nous gèlerons le compte en verrouillant le mot de passe.

Verrouiller le compte

Nous verrouillerons le compte avant de tuer les processus, car lorsque nous tuerons les processus, il déconnectera 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 /etc/shadow fichier. Normalement, vous ne vous embêteriez pas avec ces prochaines étapes, mais pour voir ce qui se passe dans le /etc/shadow fichier lorsque vous verrouillez le compte, nous ferons un léger détour. Nous pouvons utiliser la commande suivante pour examiner les deux premiers champs de l'entrée pour le eric compte d'utilisateur.

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

La commande awk analyse les champs des fichiers texte et les manipule éventuellement. Nous utilisons le -F (séparateur de champ) option pour indiquer awk que le fichier utilise deux points " : »Pour séparer les champs. Nous allons rechercher 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é.

L'entrée pour le compte utilisateur eric est imprimée pour nous.

Pour verrouiller le compte, nous utilisons le passwd commander. Nous utiliserons le -l (verrouillage) et saisissez le nom du compte utilisateur à verrouiller.

sudo passwd -l eric

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

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

Un point d'exclamation a été ajouté au début du mot de passe crypté. Il n'écrase pas le premier caractère, il est juste 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 façons 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. le pkill La commande trouvera et tuera les processus. Nous transmettons le signal KILL et utilisons le -u option (utilisateur).

sudo pkill -KILL -u eric

Vous revenez à l'invite de commande de manière résolument anti-climax. Pour nous assurer que quelque chose s'est produit, vérifions who encore:

who

Sa session a disparu. Il a été déconnecté et ses processus ont été arrêtés. Cela a retiré 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 exclu 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 devra peut-être se référer au travail de leur prédécesseur. Nous utiliserons le tar pour archiver l'intégralité de leur répertoire personnel.

Les options que nous utilisons sont les suivantes:

  • 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: Fournit une sortie détaillée lors de la création de l'archive.
sudo tar cfjv eric-20200820.tar.bz /home/eric

De nombreuses sorties d'écran défileront dans la fenêtre du terminal. Pour vérifier que l'archive a été créée, utilisez le ls commander. Nous utilisons le -l (format long) et -h (lisibles par l'homme).

ls -lh eric-20200802.tar.bz

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 en a cron travaux planifiés pour le compte utilisateur eric. UNE cron job est une commande qui est déclenchée à des moments ou des intervalles spécifiés. Nous pouvons vérifier s'il y en a cron travaux planifiés pour ce compte d'utilisateur à l'aide de ls:

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

Si quelque chose existe à cet endroit, cela signifie qu'il y a cron travaux mis en file d'attente pour ce compte d'utilisateur. Nous pouvons les supprimer avec ce crontab commander. le -r L'option (supprimer) supprimera les travaux et -u L'option (utilisateur) indique crontab dont les emplois à supprimer.

sudo crontab -r -u eric

Les travaux sont supprimés en silence. Pour autant que nous le 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.

Suppression de 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. le lprm La commande supprime les travaux de la file d'attente d'impression. le -U L'option (nom d'utilisateur) vous permet de supprimer les travaux appartenant au compte d'utilisateur nommé:

lprm -U eric

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

Suppression du compte utilisateur

Nous avons déjà sauvegardé les fichiers du /home/eric/ répertoire, afin que nous puissions aller de l'avant et supprimer le compte d'utilisateur et supprimer le /home/eric/ répertoire en même temps.

La commande à utiliser dépend de la distribution de Linux que vous utilisez. Pour les distributions Linux basées sur Debian, la commande est deluser, et pour le reste du monde Linux, il 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

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 le --remove-home drapeau:

sudo deluser --remove-home eric

La commande à utiliser pour les distributions non Debian est userdel, avec le --remove drapeau:

sudo userdel --remove eric

Toutes les traces de compte utilisateur eric ont été effacés. On peut vérifier que le /home/eric/répertoire a été supprimé:

ls /home

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

sudo less /etc/group | grep eric

C'est une enveloppe

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 tous les restes.

La précision l'emporte toujours sur la vitesse. Assurez-vous de considérer chaque étape avant de la suivre. Vous ne voulez pas que quelqu'un se dirige vers votre bureau et dise "Non, l'autre Eric."

★★★★★