Recherche de site Web

Comment supprimer des comptes d'utilisateurs avec le répertoire personnel sous Linux


Dans ce didacticiel, je vais vous expliquer les étapes que vous pouvez utiliser pour supprimer le compte d'un utilisateur ainsi que son répertoire personnel sur un système Linux.

Pour savoir comment créer des comptes d'utilisateurs et les gérer sur les systèmes Linux, lisez les articles suivants à partir des liens ci-dessous :

  1. 15 exemples de commandes « useradd » pour gérer les comptes d'utilisateurs sous Linux
  2. 15 exemples de commandes « usermod » pour changer/modifier les noms de comptes d'utilisateurs sous Linux
  3. Comment gérer les utilisateurs et les groupes avec des autorisations de fichiers sous Linux

En tant qu'Administrateur système sous Linux, vous devrez peut-être supprimer le compte d'un utilisateur après un certain temps lorsqu'un compte d'utilisateur peut devenir inactif pendant une longue période, ou lorsque l'utilisateur peut quitter l'organisation ou l'entreprise ou pour toute autre raison.

Lors de la suppression de comptes d'utilisateurs sur un système Linux, il est également important de supprimer leur répertoire personnel afin de libérer de l'espace sur les périphériques de stockage pour les nouveaux utilisateurs du système ou d'autres services.

Supprimer/Supprimer un compte utilisateur avec son répertoire personnel

1. À des fins de démonstration, je vais d'abord commencer par créer deux comptes d'utilisateur sur mon système, à savoir l'utilisateur tecmint et l'utilisateur linuxsay avec leurs répertoires personnels. /home/tecmint et /home/linusay respectivement en utilisant la commande adduser.

adduser tecmint
passwd tecmint

adduser linuxsay
passwd linuxsay

À partir de la capture d'écran ci-dessus, j'ai utilisé la commande adduser pour créer des comptes d'utilisateurs sous Linux. Vous pouvez également utiliser la commande useradd, les deux sont identiques et font le même travail.

2. Allons maintenant plus loin pour voir comment supprimer ou supprimer des comptes d'utilisateurs sous Linux en utilisant deluser (pour Debian et ses dérivés) et userdel ( Pour les systèmes basés sur RedHat/CentOS).

Les directives à l'intérieur du fichier de configuration pour les commandes deluser et userdel déterminent comment elles géreront tous les fichiers et répertoires utilisateur lorsque vous exécuterez la commande.

Regardons le fichier de configuration de la commande deluser qui est /etc/deluser.conf sur les dérivés de Debian tels que Ubuntu, Kali, Mint et pour RHEL/CentOS/Fedora utilisateurs, vous pouvez afficher les fichiers /etc/login.defs.

Les valeurs de ces configurations sont par défaut et peuvent être modifiées selon vos besoins.

vi /etc/deluser.conf         [On Debian and its derivatives]
vi /etc/login.defs           [On RedHat/CentOS based systems]

3. Pour supprimer un utilisateur avec un répertoire personnel, vous pouvez utiliser la méthode avancée en suivant ces étapes sur votre ordinateur serveur Linux. Lorsque les utilisateurs sont connectés au serveur, ils utilisent des services et exécutent différents processus. Il est important de noter que les utilisateurs ne peuvent être supprimés efficacement que s'ils ne sont pas connectés au serveur.

Verrouiller les comptes d'utilisateurs sous Linux

Commencez par verrouiller le mot de passe du compte utilisateur afin que l'utilisateur n'ait aucun accès au système. Cela empêchera un utilisateur d'exécuter des processus sur le système.

La commande passwd incluant l'option –lock peut vous aider à y parvenir :

# passwd --lock tecmint

Locking password for user tecmint.
passwd: Success

Rechercher et tuer tous les processus en cours de l'utilisateur

Ensuite, découvrez tous les processus en cours d'exécution du compte utilisateur et supprimez-les en déterminant les PID (ID de processus) des processus appartenant à l'utilisateur en utilisant :

# pgrep -u tecmint

1947
1959
2091
2094
2095
2168
2175
2179
2183
2188
2190
2202
2207
2212
2214

Ensuite, vous pouvez répertorier les processus en termes de nom d'utilisateur, de PID, de PPID (ID de processus parent), de terminal utilisé, d'état du processus, de chemin de commande dans un style de formatage complet à l'aide de la commande suivante, comme indiqué :

# ps -f --pid $(pgrep -u tecmint)

UID        PID  PPID  C STIME TTY      STAT   TIME CMD
tecmint   1947     1  0 10:49 ?        SLl    0:00 /usr/bin/gnome-keyring-daemon --daemonize --login
tecmint   1959  1280  0 10:49 ?        Ssl    0:00 mate-session
tecmint   2091  1959  0 10:49 ?        Ss     0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session /usr/bin/im-launch mate-session
tecmint   2094     1  0 10:49 ?        S      0:00 /usr/bin/dbus-launch --exit-with-session /usr/bin/im-launch mate-session
tecmint   2095     1  0 10:49 ?        Ss     0:00 //bin/dbus-daemon --fork --print-pid 6 --print-address 9 --session
tecmint   2168     1  0 10:49 ?        Sl     0:00 /usr/lib/dconf/dconf-service
tecmint   2175  1959  0 10:49 ?        Sl     0:02 /usr/bin/mate-settings-daemon
tecmint   2179  1959  0 10:49 ?        Sl     0:47 marco
tecmint   2183     1  0 10:49 ?        Sl     0:00 /usr/lib/gvfs/gvfsd
tecmint   2188  1959  0 10:49 ?        Sl     0:00 mate-panel
tecmint   2190     1  0 10:49 ?        Sl     0:00 /usr/lib/gvfs/gvfsd-fuse /run/user/1000/gvfs -f -o big_writes
tecmint   2202     1  0 10:49 ?        S<l    0:20 /usr/bin/pulseaudio --start --log-target=syslog
tecmint   2207  1959  0 10:49 ?        S      0:00 /bin/sh /usr/bin/startcaja
tecmint   2212     1  0 10:49 ?        Sl     0:03 /usr/bin/python /usr/lib/linuxmint/mintMenu/mintMenu.py
tecmint   2214     1  0 10:49 ?        Sl     0:11 /usr/lib/mate-panel/wnck-applet
....

Une fois que vous avez trouvé tous les processus en cours d'exécution de l'utilisateur, vous pouvez utiliser la commande killall pour arrêter ces processus en cours d'exécution, comme indiqué.

killall -9 -u tecmint

Le -9 est le numéro du signal SIGKILL ou utilisez -KILL au lieu de -9 et -u définit le nom d'utilisateur.

Remarque : Dans les versions récentes des versions RedHat/CentOS 7.x et Fedora 21+, vous recevrez le message d'erreur suivant :

-bash: killall: command not found

Pour corriger cette erreur, vous devez installer le package psmisc comme indiqué :

yum install psmisc       [On RedHat/CentOS 7.x]
dnf install psmisc       [On Fedora 21+ versions]

Sauvegarder les données utilisateur avant de les supprimer

Ensuite, vous pouvez sauvegarder les fichiers des utilisateurs. Cela peut être facultatif, mais il est recommandé pour une utilisation future lorsque le besoin s'en fait sentir de vérifier les détails et les fichiers du compte utilisateur.

J'ai utilisé les utilitaires tar pour créer une sauvegarde du répertoire personnel des utilisateurs comme suit :

tar jcvf /user-backups/tecmint-home-directory-backup.tar.bz2 /home/tecmint

Supprimer/Supprimer le compte utilisateur et les fichiers

Vous pouvez désormais supprimer en toute sécurité un utilisateur ainsi que son répertoire personnel. Pour supprimer tous les fichiers utilisateur du système, utilisez l'option --remove-all-files dans la commande ci-dessous :

deluser --remove-home tecmint      [On Debian and its derivatives]
userdel --remove tecmint           [On RedHat/CentOS based systems]

Résumé

Tout cela concerne la suppression de l'utilisateur et de son répertoire personnel d'un système Linux. Je pense que le guide est assez facile à suivre, mais vous pouvez exprimer une préoccupation ou ajouter d'autres idées en laissant un commentaire.