Ricerca nel sito web

Come eliminare gli account utente con la home directory in Linux


In questo tutorial, illustrerò i passaggi che puoi utilizzare per eliminare l'account di un utente insieme alla sua directory home su un sistema Linux.

Per sapere come creare account utente e gestirli su sistemi Linux, leggi i seguenti articoli dai link sottostanti:

  1. 15 esempi di comandi "useradd" per gestire gli account utente in Linux
  2. 15 esempi di comandi "usermod" per cambiare/modificare i nomi degli account utente in Linux
  3. Come gestire utenti e gruppi con autorizzazioni file in Linux

In qualità di amministratore di sistema in Linux, potresti dover rimuovere l'account utente dopo qualche tempo in cui un account utente potrebbe rimanere inattivo per un certo periodo o l'utente potrebbe lasciare l'organizzazione o la società o per qualsiasi altro motivo.

Quando si rimuovono gli account utente su un sistema Linux, è importante anche rimuovere la loro directory home per liberare spazio sui dispositivi di archiviazione per nuovi utenti del sistema o altri servizi.

Eliminazione/rimozione di un account utente con la sua home directory

1. A scopo dimostrativo, per prima cosa inizierò creando due account utente sul mio sistema: l'utente tecmint e l'utente linuxsay con le rispettive directory home /home/tecmint e /home/linusay rispettivamente utilizzando il comando adduser.

adduser tecmint
passwd tecmint

adduser linuxsay
passwd linuxsay

Dallo screenshot qui sopra, ho utilizzato il comando adduser per creare account utente su Linux. Puoi anche usare il comando useradd, entrambi sono uguali e fanno lo stesso lavoro.

2. Andiamo ora oltre per vedere come eliminare o rimuovere gli account utente in Linux utilizzando deluser (per Debian e le sue derivate) e userdel ( Per i sistemi basati su RedHat/CentOS).

Le direttive all'interno del file di configurazione per i comandi deluser e userdel determinano come gestirà tutti i file e le directory dell'utente quando esegui il comando.

Diamo un'occhiata al file di configurazione per il comando deluser che è /etc/deluser.conf su derivati Debian come Ubuntu, Kali, Mint e per RHEL/CentOS/Fedora utenti, è possibile visualizzare i file /etc/login.defs.

I valori in queste configurazioni sono predefiniti e possono essere modificati in base alle proprie esigenze.

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

3. Per eliminare un utente con la directory home, puoi utilizzare la modalità avanzata seguendo questi passaggi sul tuo computer server Linux. Quando gli utenti sono connessi al server, utilizzano servizi ed eseguono processi diversi. È importante notare che l'utente può essere eliminato in modo efficace solo quando non è connesso al server.

Blocca gli account utente in Linux

Inizia bloccando la password dell'account utente in modo che l'utente non possa accedere al sistema. Ciò impedirà a un utente di eseguire processi sul sistema.

Il comando passwd inclusa l'opzione –lock può aiutarti a raggiungere questo obiettivo:

# passwd --lock tecmint

Locking password for user tecmint.
passwd: Success

Trova e uccidi tutti i processi in esecuzione dell'utente

Successivamente scopri tutti i processi in esecuzione dell'account utente e interrompili determinando i PID (ID processo) dei processi di proprietà dell'utente utilizzando:

# pgrep -u tecmint

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

Quindi puoi elencare i processi in termini di nome utente, PID, PPID (ID processo principale), terminale utilizzato, stato del processo, percorso del comando in uno stile di formattazione completo con l'aiuto del seguente comando come mostrato:

# 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
....

Una volta trovati tutti i processi in esecuzione dell'utente, puoi utilizzare il comando killall per terminare tali processi in esecuzione come mostrato.

killall -9 -u tecmint

-9 è il numero del segnale per il segnale SIGKILL oppure utilizza -KILL invece di -9 e -u definisce il nome utente.

Nota: nelle versioni recenti delle versioni RedHat/CentOS 7.x e Fedora 21+, riceverai un messaggio di errore come:

-bash: killall: command not found

Per correggere tale errore, è necessario installare il pacchetto psmisc come mostrato:

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

Eseguire il backup dei dati utente prima dell'eliminazione

Successivamente è possibile eseguire il backup dei file degli utenti, questo può essere facoltativo ma è consigliato per un uso futuro quando si presenta la necessità di rivedere i dettagli e i file dell'account utente.

Ho utilizzato le utilità tar per creare un backup della directory home degli utenti come segue:

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

Elimina/Rimuovi account utente e file

Ora puoi rimuovere in sicurezza l'utente insieme alla sua directory home, per rimuovere tutti i file utente sul sistema utilizza l'opzione --remove-all-files nel comando seguente:

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

Riepilogo

Tutto ciò ha a che fare con la rimozione dell'utente e della sua home directory da un sistema Linux. Credo che la guida sia abbastanza facile da seguire, ma puoi esprimere una preoccupazione o aggiungere altre idee lasciando un commento.