Come eliminare un utente su Linux (e rimuovere ogni traccia)

Un prompt della shell in una finestra terminale su un computer Linux.
Fatmawati Achmad Zaenuri / Shutterstock

L'eliminazione di un utente su Linux comporta più di quanto si pensi. Se sei un amministratore di sistema, vorrai eliminare tutte le tracce dell'account e il suo accesso dai tuoi sistemi. Ti mostreremo i passi da compiere.

Se desideri semplicemente eliminare un account utente dal tuo sistema e non sei preoccupato di terminare eventuali processi in esecuzione e altre attività di pulizia, segui i passaggi nella sezione “Eliminazione dell'account utente” di seguito. Avrai bisogno del deluser comando su distribuzioni basate su Debian e il userdel comando su altre distribuzioni Linux.

Account utente su Linux

Da quando i primi sistemi di condivisione del tempo sono apparsi nei primi anni '60 e hanno portato con sé la possibilità per più utenti di lavorare su un singolo computer, è stato necessario isolare e compartimentare i file e i dati di ciascun utente da tutti gli altri utenti. E così nacquero account utente e password.

Gli account utente hanno un sovraccarico amministrativo. Devono essere creati quando l'utente deve prima accedere al computer. Devono essere rimossi quando tale accesso non è più necessario. Su Linux, è necessario seguire una sequenza di passaggi per rimuovere correttamente e metodicamente l'utente, i suoi file e il loro account dal computer.

Se sei l'amministratore di sistema, la responsabilità spetta a te. Ecco come procedere.

Il nostro scenario

Esistono diversi motivi per cui potrebbe essere necessario eliminare un account. Un membro del personale potrebbe trasferirsi in un team diverso o abbandonare completamente la società. L'account potrebbe essere stato impostato per una collaborazione a breve termine con un visitatore di un'altra azienda. I team-up sono comuni nel mondo accademico, dove i progetti di ricerca possono estendersi a dipartimenti, università diverse e persino entità commerciali. Alla conclusione del progetto, l'amministratore di sistema deve eseguire le pulizie e rimuovere gli account non necessari.

Lo scenario peggiore è quando qualcuno lascia una nuvola a causa di un reato. Tali eventi di solito si verificano all'improvviso, con un piccolo preavviso. Ciò concede all'amministratore di sistema pochissimo tempo per pianificare e un'urgenza di bloccare, chiudere ed eliminare l'account, con una copia dei file dell'utente di cui è stato eseguito il backup nel caso in cui siano necessari per eventuali analisi forensi post-chiusura.

Nel nostro scenario, faremo finta che un utente, Eric, abbia fatto qualcosa che giustifichi la sua immediata rimozione dalla sede. In questo momento non è a conoscenza di ciò, sta ancora lavorando e ha effettuato l'accesso. Non appena annuirai in sicurezza, verrà scortato dall'edificio.

Tutto è pronto. Tutti gli occhi sono puntati su di te.

Controlla il Login

Vediamo se ha effettuato l'accesso e, in caso affermativo, con quante sessioni sta lavorando. Il who il comando elencherà le sessioni attive.

who

chi in una finestra terminale

Eric ha effettuato l'accesso una volta. Vediamo quali processi sta eseguendo.

Revisione dei processi dell'utente

Possiamo usare il ps comando per elencare i processi in esecuzione su questo utente. Il -u (utente) opzione ci consente di dirlo ps limitare il proprio output ai processi in esecuzione sotto la proprietà di tale account utente.

ps -u eric

ps -u erico in una finestra terminale

Possiamo vedere gli stessi processi con più informazioni usando il top comando. top ha anche un -U (utente) opzione per limitare l'output ai processi di proprietà di un singolo utente. Si noti che questa volta è una “U” maiuscola

top -U eric

top -U eric in una finestra terminale

Possiamo vedere l'utilizzo della memoria e della CPU di ogni attività e possiamo cercare rapidamente qualsiasi cosa con attività sospette. Stiamo per uccidere con la forza tutti i suoi processi, quindi è più sicuro dedicare un momento a rivedere rapidamente i processi e verificare e assicurarsi che altri utenti non vengano disturbati quando si chiude l'account utente ericI processi.

Uscita dall'alto -U eric in una finestra terminale

Non sembra che stia facendo molto, solo usando less per visualizzare un file. Siamo sicuri di procedere. Ma prima di interrompere i suoi processi, bloccheremo l'account bloccando la password.

RELAZIONATO: Come utilizzare il comando ps per monitorare i processi Linux

Blocco dell'account

Bloccheremo l'account prima di interrompere i processi perché quando eliminiamo i processi disconnetterà l'utente. Se abbiamo già cambiato la sua password, non sarà in grado di accedere nuovamente.

Le password utente crittografate sono archiviate in /etc/shadow file. Di solito non ti preoccuperesti di questi passaggi successivi, ma in modo da poter vedere cosa succede nel /etc/shadow file quando blocchi l'account faremo una leggera deviazione. Possiamo usare il seguente comando per esaminare i primi due campi della voce per il eric account utente.

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

sudo awk -F: '/ eric / {print $ 1, $ 2}' / etc / shadow in una finestra del terminale

Il comando awk analizza i campi dai file di testo e facoltativamente li manipola. Stiamo usando il -F (separatore di campo) opzione da dire awk che il file utilizza i due punti ” : “Per separare i campi. Cercheremo una linea con lo schema “eric” al suo interno. Per le linee corrispondenti, stamperemo il primo e il secondo campo. Questi sono il nome dell'account e la password crittografata.

La voce per l'account utente eric è stampata per noi.

Per bloccare l'account usiamo il passwd comando. Useremo il -l (blocco) e passa il nome dell'account utente per bloccare.

sudo passwd -l eric

sudo passwd -l eric in una finestra terminale

Se controlliamo il /etc/passwd file di nuovo, vedremo cosa è successo.

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

sudo awk -F: '/ eric / {print $ 1, $ 2}' / etc / shadow in una finestra del terminale

Un punto esclamativo è stato aggiunto all'inizio della password crittografata. Non sovrascrive il primo carattere, è appena aggiunto all'inizio della password. Questo è tutto ciò che è necessario per impedire a un utente di accedere a tale account.

Ora che abbiamo impedito all'utente di accedere nuovamente, possiamo interrompere i suoi processi e disconnetterlo.

Uccidere i processi

Esistono diversi modi per terminare i processi di un utente, ma il comando mostrato qui è ampiamente disponibile ed è un'implementazione più moderna di alcune delle alternative. Il pkill comando troverà e ucciderà i processi. Stiamo trasmettendo il segnale KILL e stiamo usando -u (utente) opzione.

sudo pkill -KILL -u eric

sudo pkill -KILL -u eric in una finestra terminale

Si ritorna al prompt dei comandi in modo decisamente anti-climatico. Per assicurarci che sia successo qualcosa, controlliamo who ancora:

who

chi in una finestra terminale

La sua sessione è andata. È stato disconnesso e i suoi processi sono stati interrotti. Questo ha tolto un po 'di urgenza dalla situazione. Ora possiamo rilassarci un po 'e andare avanti con il resto del rastrellamento mentre la sicurezza si avvicina alla scrivania di Eric.

RELAZIONATO: Come uccidere i processi dal terminale Linux

Archiviazione della home directory dell'utente

Non è fuori dubbio che in uno scenario come questo, in futuro sarà richiesto l'accesso ai file dell'utente. O come parte di un'indagine o semplicemente perché la loro sostituzione potrebbe dover fare riferimento al lavoro del loro predecessore. Useremo il tar comando per archiviare l'intera directory home.

Le opzioni che stiamo utilizzando sono:

  • c: Crea un file di archivio.
  • f: Utilizzare il nome file specificato per il nome dell'archivio.
  • j: Usa la compressione bzip2.
  • v: Fornisce un output dettagliato mentre viene creato l'archivio.
sudo tar cfjv eric-20200820.tar.bz /home/eric

sudo tar cfjv eric-20200820.tar.bz / home / eric in una finestra terminale

Molta uscita dello schermo scorrerà nella finestra del terminale. Per verificare che l'archivio sia stato creato, utilizzare il ls comando. Stiamo usando il -l (formato lungo) e -h (leggibile dall'uomo) opzioni.

ls -lh eric-20200802.tar.bz

sudo tar cfjv eric-20200820.tar.bz / home / eric in una finestra terminale

È stato creato un file di 722 MB. Questo può essere copiato in un posto sicuro per una successiva revisione.

Rimozione di cron Jobs

Faremo meglio a controllare se ce ne sono cron lavori programmati per l'account utente eric. UN cron job è un comando che viene attivato in determinati orari o intervalli. Possiamo verificare se ce ne sono cron lavori pianificati per questo account utente utilizzando ls:

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

sudo ls -lh / var / spool / cron / crontabs / eric in una finestra terminale

Se qualcosa esiste in questa posizione significa che ci sono cron lavori in coda per quell'account utente. Possiamo eliminarli con questo crontab comando. Il -r (rimuovi) rimuoverà i lavori e l'opzione -u (utente) opzione dice crontab di cui rimuovere i lavori.

sudo crontab -r -u eric

sudo crontab -r -u eric in una finestra terminale

I lavori vengono eliminati silenziosamente. Per quanto ne sappiamo, se Eric avesse sospettato che stesse per essere sfrattato, avrebbe potuto programmare un lavoro malevolo. Questo passaggio è la migliore pratica.

Rimozione dei lavori di stampa

Forse l'utente ha avuto lavori di stampa in sospeso? Giusto per essere sicuri, possiamo eliminare la coda di stampa di tutti i lavori appartenenti all'account utente eric. Il lprm Il comando rimuove i lavori dalla coda di stampa. Il -U (nome utente) consente di rimuovere i lavori di proprietà dell'account utente indicato:

lprm -U eric

lprm -U eric in una finestra terminale

I lavori vengono rimossi e si ritorna alla riga di comando.

Eliminazione dell'account utente

Abbiamo già eseguito il backup dei file da /home/eric/ directory, così possiamo andare avanti ed eliminare l'account utente ed eliminare il file /home/eric/ directory allo stesso tempo.

Il comando da utilizzare dipende dalla distribuzione di Linux che stai utilizzando. Per le distribuzioni Linux basate su Debian, il comando è deluser, e per il resto del mondo Linux, lo è userdel.

In realtà, su Ubuntu sono disponibili entrambi i comandi. Mi aspettavo quasi che l'uno fosse un alias dell'altro, ma sono binari distinti.

type deluser
type userdel

digitare deluser in una finestra del terminale

Sebbene siano entrambi disponibili, si consiglia di utilizzare deluser sulle distribuzioni derivate da Debian:

userdel è un'utilità di basso livello per la rimozione degli utenti. Su Debian, gli amministratori dovrebbero di solito usare deluser(8) invece. “

È abbastanza chiaro, quindi il comando da usare su questo computer Ubuntu è deluser. Poiché vogliamo anche rimuovere la loro home directory, stiamo usando il --remove-home bandiera:

sudo deluser --remove-home eric

sudo deluser --remove-home eric in una finestra terminale

Il comando da usare per le distribuzioni non Debian è userdel, con il --remove bandiera:

sudo userdel --remove eric

Tutte le tracce dell'account utente eric sono stati cancellati. Possiamo verificare che il /home/eric/la directory è stata rimossa:

ls /home

ls / home in una finestra terminale

Il eric il gruppo è stato rimosso anche perché l'account utente eric era l'unica voce in esso. Possiamo verificarlo abbastanza facilmente eseguendo il piping del contenuto di /etc/group attraverso grep:

sudo less /etc/group | grep eric

sudo less / etc / group | grep eric in una finestra terminale

È un involucro

Eric, per i suoi peccati, non c'è più. La sicurezza lo sta ancora spingendo fuori dall'edificio e tu hai già protetto e archiviato i suoi file, cancellato il suo account e eliminato il sistema da eventuali resti.

La precisione supera sempre la velocità. Assicurati di considerare ogni passaggio prima di prenderlo. Non vuoi che qualcuno si avvicini alla tua scrivania e dica “No, l'altro Eric.”

Articoli correlati

Ultimi articoli