Eliminare un utente su Linux implica più di quanto pensi. Se sei un amministratore di sistema, ti consigliamo di eliminare tutte le tracce dell’account e del suo accesso dai tuoi sistemi. Ti mostreremo i passaggi da eseguire.
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 di deluser comando su distribuzioni basate su Debian e su userdel comando su altre distribuzioni Linux.
Account utente su Linux
Sin dal i primi sistemi di time-sharing apparvero all’inizio degli anni ’60 e ha portato con sé la possibilità per più utenti di lavorare su un singolo computer, è nata la necessità di isolare e compartimentalizzare i file e i dati di ciascun utente da tutti gli altri utenti. E quindi gli account utente…e password—nacquero.
Gli account utente hanno un sovraccarico amministrativo. Ne hanno bisogno essere creato quando l’utente deve accedere per la prima volta al computer. È necessario rimuoverli quando l’accesso non è più necessario. Su Linux, c’è una sequenza di passaggi da seguire per rimuovere correttamente e metodicamente l’utente, i suoi file e il suo account dal computer.
Se sei l’amministratore di sistema, questa responsabilità ricade su di te. Ecco come procedere.
Perché eliminare un account?
Esistono diversi motivi per cui potrebbe essere necessario eliminare un account. Un membro del personale potrebbe trasferirsi in un team diverso o lasciare del tutto l’azienda. 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 coinvolgere dipartimenti, diverse università e persino entità commerciali. Al termine del progetto, l’amministratore di sistema deve eseguire le operazioni di pulizia e rimuovere gli account non necessari.
Lo scenario peggiore è quando qualcuno se ne va sotto una nuvola a causa di un reato minore. Tali eventi di solito accadono all’improvviso, con poco preavviso. Ciò lascia all’amministratore di sistema pochissimo tempo per pianificare e l’urgenza di bloccare, chiudere ed eliminare l’account, con una copia dei file dell’utente di cui viene 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 ne giustifichi l’immediato allontanamento dalla sede. In questo momento non ne è a conoscenza, sta ancora lavorando ed è loggato. Non appena farai un cenno alla sicurezza verrà scortato fuori dall’edificio.
E’ tutto pronto. Tutti gli occhi sono puntati su di te.
Controlla l’accesso
Vediamo se è davvero loggato e, se lo è, con quante sessioni sta lavorando. IL who comando elencherà le sessioni attive.
who Eric ha effettuato l’accesso una volta. Vediamo quali processi sta eseguendo.
Revisione dei processi dell’utente
Possiamo usare il ps comando a elenca i processi in esecuzione da questo utente. IL -u (utente) l’opzione ci consente di dirlo ps per limitare il suo output ai processi in esecuzione sotto la proprietà di quell’account utente.
ps -u eric Possiamo vedere gli stessi processi con più informazioni utilizzando il file top comando. top ha anche un -U (utente) opzione per limitare l’output ai processi di proprietà di un singolo utente. Nota che questa volta si tratta di una “U” maiuscola.
top -U eric Possiamo vedere l’utilizzo della memoria e della CPU di ciascuna attività e cercare rapidamente qualsiasi cosa con attività sospetta. Stiamo per interrompere forzatamente tutti i suoi processi, quindi è più sicuro prendersi un momento per rivedere rapidamente i processi e controllare e assicurarsi che gli altri utenti non subiscano disagi quando si chiude l’account utente erici processi.
Non sembra che stia facendo molto, solo usando less per visualizzare un file. Possiamo procedere tranquillamente. Ma prima di interrompere i suoi processi, congeleremo l’account bloccando la password.
Blocco dell’account
Bloccheremo l’account prima di interrompere i processi perché quando interrompiamo i processi l’utente verrà disconnesso. Se abbiamo già cambiato la sua password, non potrà accedere nuovamente.
Le password utente crittografate sono archiviate nel file /etc/shadow file. Normalmente non ti preoccuperesti di questi passaggi successivi, ma in modo da poter vedere cosa succede nel file /etc/shadow file quando blocchi l’account faremo una leggera deviazione. Possiamo usare il comando seguente per esaminare i primi due campi della voce per il eric account utente.
sudo awk -F: ‘/eric/ {print $1,$2}’ /etc/shadow Il comando awk analizza i campi da file di testo e facoltativamente li manipola. Stiamo utilizzando il -F (separatore di campo) opzione per dirlo awk che il file utilizza i due punti ” : ” per separare i campi. Cercheremo una riga con il modello “eric” al suo interno. Per le righe 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 viene stampata per noi.
Per bloccare l’account utilizziamo il file passwd comando. Utilizzeremo il -l opzione (blocco) e passare il nome dell’account utente da bloccare.
sudo passwd -l eric Se controlliamo il /etc/passwd file di nuovo, vedremo cosa è successo.
sudo awk -F: ‘/eric/ {print $1,$2}’ /etc/shadow È stato aggiunto un punto esclamativo all’inizio della password crittografata. Non sovrascrive il primo carattere, viene semplicemente aggiunto all’inizio della password. Questo è tutto ciò che serve per impedire a un utente di accedere a quell’account.
Ora che abbiamo impedito all’utente di accedere nuovamente, possiamo terminare i suoi processi e disconnetterlo.
Uccidere i processi
Ci sono diversi modi per farlo uccidere i processi di un utente, ma il comando mostrato qui è ampiamente disponibile ed è un’implementazione più moderna rispetto ad alcune alternative. IL pkill il comando troverà e ucciderà i processi. Stiamo trasmettendo il segnale KILL e utilizzando il file -u opzione (utente).
sudo pkill -KILL -u eric Vieni restituito al prompt dei comandi in modo decisamente anti-climatico. Per assicurarci che sia successo qualcosa, controlliamo who Ancora:
who La sua sessione è finita. È stato disconnesso e i suoi processi sono stati interrotti. Ciò ha attenuato parte dell’urgenza della situazione. Ora possiamo rilassarci un po’ e continuare con il resto della pulizia mentre la sicurezza si avvicina alla scrivania di Eric.
Archiviazione della home directory dell’utente
Non è escluso che in uno scenario come questo in futuro sarà necessario l’accesso ai file dell’utente. O nell’ambito di un’indagine o semplicemente perché il loro sostituto potrebbe aver bisogno di fare riferimento al lavoro del loro predecessore. Utilizzeremo il tar comando per archiviare l’intera directory home.
Le opzioni che stiamo utilizzando sono:
- C: crea un file di archivio.
- F: utilizza il nome file specificato per il nome dell’archivio.
- J: utilizza la compressione bzip2.
- v: fornisce un output dettagliato durante la creazione dell’archivio.
sudo tar cfjv eric-20200820.tar.bz /home/eric Gran parte dell’output dello schermo scorrerà nella finestra del terminale. Per verificare che l’archivio sia stato creato, utilizzare il file ls comando. Stiamo utilizzando il -l (formato lungo) e -h opzioni (leggibili dall’uomo).
ls -lh eric-20200802.tar.bz È stato creato un file di 722 MB. Questo può essere copiato in un posto sicuro per una revisione successiva.
Rimozione dei lavori cron
Faremo meglio a verificare se ce ne sono cron lavori pianificati per l’account utente eric. UN cron job è un comando che viene attivato a orari o intervalli specificati. Possiamo verificare se ce ne sono cron lavori pianificati per questo account utente utilizzando ls:
sudo ls -lh /var/spool/cron/crontabs/eric Se esiste qualcosa in questa posizione significa che esiste cron lavori in coda per quell’account utente. Possiamo eliminarli con questo crontab comando. IL -r (rimuovi) l’opzione rimuoverà i lavori e il file -u L’opzione (utente) dice crontab i cui lavori rimuovere.
sudo crontab -r -u eric I lavori vengono eliminati silenziosamente. Per quanto ne sappiamo, se Eric avesse sospettato che stava per essere sfrattato, avrebbe potuto programmare un lavoro dannoso. Questo passaggio è la procedura migliore.
Rimozione di lavori di stampa
Forse l’utente aveva lavori di stampa in sospeso? Per sicurezza, possiamo eliminare dalla coda di stampa tutti i lavori appartenenti all’account utente eric. IL lprm comando rimuove i lavori dalla coda di stampa. IL -U (nome utente) l’opzione ti consente di rimuovere i lavori di proprietà dell’account utente denominato:
lprm -U eric 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, quindi possiamo procedere ed eliminare l’account utente ed eliminare il file /home/eric/ directory contemporaneamente.
Il comando da utilizzare dipende dalla distribuzione di Linux che stai utilizzando. Per Distribuzioni Linux basate su Debianil comando è deluserE per il resto del mondo Linuxè userdel.
In realtà su Ubuntu sono disponibili entrambi i comandi. Quasi mi aspettavo che uno fosse l’alias dell’altro, ma sono binari distinti.
type deluser type userdel Sebbene siano entrambi disponibili, il consiglio è di utilizzarli deluser sulle distribuzioni derivate da Debian:
“userdel è un’utilità di basso livello per rimuovere utenti. Su Debian, gli amministratori dovrebbero solitamente usare deluser(8) invece.”
È abbastanza chiaro, quindi il comando da utilizzare su questo computer Ubuntu è deluser. Poiché vogliamo che anche la loro directory home venga rimossa, stiamo utilizzando il file –remove-home bandiera:
sudo deluser –remove-home eric Il comando da utilizzare per le distribuzioni non Debian è userdelcon 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 IL eric anche il gruppo è stato rimosso perché l’account utente eric era l’unica voce in esso. Possiamo verificarlo abbastanza facilmente trasmettendo il contenuto di /etc/group Attraverso grep:
sudo less /etc/group | grep eric
È un involucro
Eric, per i suoi peccati, se n’è andato. La sicurezza lo sta ancora accompagnando fuori dall’edificio e tu hai già messo al sicuro e archiviato i suoi file, cancellato il suo account e ripulito il sistema da ogni residuo.
La precisione batte sempre sulla velocità. Assicurati di considerare ogni passaggio prima di eseguirlo. Non vuoi che qualcuno si avvicini alla tua scrivania e dica “No, l’altro Eric”.