Cum să ștergeți un utilizator pe Linux (și să eliminați fiecare urmă)

Ștergerea unui utilizator pe Linux implică mai mult decât credeți. Dacă sunteți administrator de sistem, veți dori să ștergeți toate urmele contului și accesul acestuia din sistemele dvs. Vă vom arăta pașii de urmat.

Dacă doriți doar să ștergeți un cont de utilizator din sistemul dvs. și nu sunteți îngrijorat de încheierea niciunui proces care rulează și alte sarcini de curățare, urmați pașii din secțiunea „Ștergerea contului de utilizator” de mai jos. Veți avea nevoie de comanda deluser pe distribuțiile bazate pe Debian și de comanda userdel pe alte distribuții Linux.

Conturi de utilizator pe Linux

Încă de la primele sisteme de partajare a timpului au apărut la începutul anilor 1960 și a adus cu ei capacitatea pentru mai mulți utilizatori de a lucra pe un singur computer, a existat o nevoie de a izola și de a compartimenta fișierele și datele fiecărui utilizator de toți ceilalți utilizatori. Și astfel conturile de utilizator—si parole-s-au născut.

Conturile de utilizator au o suprasarcină administrativă. Acestea trebuie create atunci când utilizatorul are nevoie pentru prima dată de acces la computer. Ele trebuie eliminate atunci când acel acces nu mai este necesar. Pe Linux, există o secvență de pași care ar trebui urmați pentru a elimina corect și metodic utilizatorul, fișierele și contul său de pe computer.

Dacă sunteți administratorul de sistem, această responsabilitate revine dvs. Iată cum să procedezi.

Scenariul nostru

Există o serie de motive pentru care un cont ar putea fi necesar să fie șters. Un membru al personalului s-ar putea muta într-o echipă diferită sau poate părăsi compania. Este posibil ca contul să fi fost configurat pentru o colaborare pe termen scurt cu un vizitator de la o altă companie. Echipele sunt comune în mediul academic, unde proiectele de cercetare se pot întinde pe departamente, universități diferite și chiar entități comerciale. La încheierea proiectului, administratorul de sistem trebuie să efectueze menaj și să elimine conturile inutile.

Cel mai rău caz este atunci când cineva pleacă sub un nor din cauza unei contravenții. Astfel de evenimente se întâmplă de obicei brusc, cu puține avertismente prealabile. Acest lucru îi oferă administratorului de sistem foarte puțin timp pentru planificare și o urgență pentru a bloca, închide și șterge contul – cu o copie a fișierelor utilizatorului cu copie de rezervă în cazul în care acestea sunt necesare pentru orice investigație criminalistică post-închidere.

  Cum se face upgrade la Wine 7 pe Linux

În scenariul nostru, vom pretinde că un utilizator, Eric, a făcut ceva care justifică îndepărtarea sa imediată din sediu. În acest moment, el nu este conștient de acest lucru, încă lucrează și s-a conectat. De îndată ce dai semn din cap la securitate, el va fi escortat din clădire.

Totul este pus la punct. Toate privirile sunt asupra ta.

Verificați autentificarea

Să vedem dacă chiar este autentificat și, dacă este, cu câte sesiuni lucrează. Cei care comandă va enumera sesiunile active.

who

Eric este conectat o dată. Să vedem ce procese rulează.

Revizuirea proceselor utilizatorului

Putem folosi comanda ps pentru a enumerați procesele pe care le rulează acest utilizator. Opțiunea -u (utilizator) ne permite să îi spunem ps să-și limiteze ieșirea la procesele care rulează sub proprietatea acelui cont de utilizator.

ps -u eric

Putem vedea aceleași procese cu mai multe informații folosind comanda de sus. top are, de asemenea, o opțiune -U (utilizator) pentru a restricționa ieșirea la procesele deținute de un singur utilizator. Rețineți că de data aceasta este un „U” majuscul.

top -U eric

Putem vedea memoria și utilizarea procesorului pentru fiecare sarcină și putem căuta rapid orice cu activitate suspectă. Suntem pe cale să omorâm forțat toate procesele lui, așa că este mai sigur să luăm un moment pentru a revizui rapid procesele și a verifica și a ne asigura că alți utilizatori nu vor fi deranjați atunci când închideți procesele contului de utilizator eric.

Nu pare să facă mult, doar că folosește mai puțin pentru a vizualiza un fișier. Putem continua. Dar înainte de a-i ucide procesele, vom îngheța contul prin blocarea parolei.

Blocarea Contului

Vom bloca contul înainte de a distruge procesele, deoarece atunci când oprim procesele, utilizatorul va deconecta. Dacă i-am schimbat deja parola, el nu se va putea conecta din nou.

Parolele de utilizator criptate sunt stocate în fișierul /etc/shadow. În mod normal, nu v-ați deranja cu acești pași următori, dar pentru a putea vedea ce se întâmplă în fișierul /etc/shadow când blocați contul, vom face un ocol ușor. Putem folosi următoarea comandă pentru a examina primele două câmpuri ale intrării pentru contul de utilizator eric.

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

Comanda awk analizează câmpurile din fișierele text și opțional le manipulează. Folosim opțiunea -F (separator de câmpuri) pentru a-i spune lui awk că fișierul folosește două puncte ” : ” pentru a separa câmpurile. Vom căuta o linie cu modelul „eric” în ea. Pentru linii de potrivire, vom tipări primul și al doilea câmp. Acestea sunt numele contului și parola criptată.

  Cum se instalează Calligra Words pe Linux

Intrarea pentru contul de utilizator eric este tipărită pentru noi.

Pentru a bloca contul folosim comanda passwd. Vom folosi opțiunea -l (blocare) și treceți numele contului de utilizator pentru blocare.

sudo passwd -l eric

Dacă verificăm din nou fișierul /etc/passwd, vom vedea ce s-a întâmplat.

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

Un semn de exclamare a fost adăugat la începutul parolei criptate. Nu suprascrie primul caracter, este doar adăugat la începutul parolei. Acesta este tot ceea ce este necesar pentru a împiedica un utilizator să se poată conecta la acel cont.

Acum, că am împiedicat utilizatorul să se conecteze din nou, putem să-i omorâm procesele și să-l deconectam.

Uciderea proceselor

Există diferite moduri de a ucide procesele unui utilizator, dar comanda prezentată aici este disponibilă pe scară largă și este o implementare mai modernă decât unele dintre alternative. Comanda pkill va găsi și va ucide procesele. Trecem semnalul KILL și folosim opțiunea -u (utilizator).

sudo pkill -KILL -u eric

Ați revenit la promptul de comandă într-un mod hotărât anti-climatic. Pentru a ne asigura că s-a întâmplat ceva, să verificăm cine din nou:

who

Sesiunea lui a dispărut. A fost deconectat și procesele lui au fost oprite. Asta a scos o parte din urgență din situație. Acum ne putem relaxa puțin și continuăm cu restul curățării, în timp ce securitatea se îndreaptă spre biroul lui Eric.

Arhivarea directorului de acasă al utilizatorului

Nu este exclus că într-un scenariu ca acesta, accesul la fișierele utilizatorului va fi necesar în viitor. Fie ca parte a unei investigații, fie pur și simplu pentru că înlocuitorul lor poate avea nevoie să se refere la munca predecesorului lor. Vom folosi comanda tar pentru a-și arhiva întregul director principal.

Opțiunile pe care le folosim sunt:

c: Creați un fișier de arhivă.
f: Utilizați numele de fișier specificat pentru numele arhivei.
j: Folosiți compresia bzip2.
v: Furnizați rezultate detaliate pe măsură ce arhiva este creată.

sudo tar cfjv eric-20200820.tar.bz /home/eric

O mulțime de ieșiri de ecran vor derula în fereastra terminalului. Pentru a verifica că arhiva a fost creată, utilizați comanda ls. Folosim opțiunile -l (format lung) și -h (lizibil de oameni).

ls -lh eric-20200802.tar.bz

A fost creat un fișier de 722 MB. Acesta poate fi copiat undeva în siguranță pentru o revizuire ulterioară.

Eliminarea joburilor cron

Ar fi bine să verificăm în cazul în care există lucrări cron programate pentru contul de utilizator eric. Un job cron este o comandă care este declanșată la momente sau intervale specificate. Putem verifica dacă există lucrări cron programate pentru acest cont de utilizator utilizând ls:

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

Dacă există ceva în această locație, înseamnă că există joburi cron în coadă pentru acel cont de utilizator. Le putem șterge cu această comandă crontab. Opțiunea -r (eliminare) va elimina joburile, iar opțiunea -u (utilizator) îi spune crontab ale căror locuri de muncă să fie eliminate.

sudo crontab -r -u eric

Lucrările sunt șterse în tăcere. Din câte știm, dacă Eric ar fi bănuit că este pe cale să fie evacuat, ar fi putut programa o slujbă rău intenționată. Acest pas este cea mai bună practică.

  Cum să găzduiți acțiuni NFS pe Linux

Eliminarea lucrărilor de imprimare

Poate că utilizatorul a avut lucrări de imprimare în așteptare? Doar pentru a fi siguri, putem curăța coada de imprimare de orice lucrări aparținând contului de utilizator eric. Comanda lprm elimină lucrările din coada de imprimare. Opțiunea -U (nume de utilizator) vă permite să eliminați joburi deținute de contul de utilizator numit:

lprm -U eric

Lucrările sunt eliminate și veți reveni la linia de comandă.

Ștergerea contului de utilizator

Am făcut deja copii de rezervă pentru fișierele din directorul /home/eric/, așa că putem merge mai departe și să ștergem contul de utilizator și să ștergem directorul /home/eric/ în același timp.

Comanda de utilizat depinde de distribuția Linux pe care o utilizați. Pentru Distribuții Linux bazate pe Debian, comanda este deluser și pentru restul lumii Linux, este userdel.

De fapt, pe Ubuntu ambele comenzi sunt disponibile. Pe jumătate mă așteptam ca unul să fie un alias al celuilalt, dar sunt binare distincte.

type deluser
type userdel

Deși ambele sunt disponibile, recomandarea este să utilizați deluser pe distribuțiile derivate din Debian:

„userdel este un utilitar de nivel scăzut pentru eliminarea utilizatorilor. Pe Debian, administratorii ar trebui să folosească deluser(8) în schimb.”

Este suficient de clar, așa că comanda de utilizat pe acest computer Ubuntu este deluser. Deoarece dorim ca și directorul lor principal să fie eliminat, folosim indicatorul –remove-home:

sudo deluser --remove-home eric

Comanda care trebuie utilizată pentru distribuțiile non-Debian este userdel, cu marcajul –remove:

sudo userdel --remove eric

Toate urmele contului de utilizator eric au fost șterse. Putem verifica dacă /home/eric/directory a fost eliminat:

ls /home

Grupul eric a fost, de asemenea, eliminat deoarece contul de utilizator eric era singura intrare din el. Putem verifica acest lucru destul de ușor, transferând conținutul /etc/group prin grep:

sudo less /etc/group | grep eric

Este o folie

Eric, pentru păcatele sale, a dispărut. Securitatea încă îl scoate din clădire și deja i-ați securizat și arhivat fișierele, i-ați șters contul și ați curățat sistemul de orice rămășițe.

Precizia depășește întotdeauna viteza. Asigurați-vă că luați în considerare fiecare pas înainte de a-l face. Nu vrei ca cineva să se apropie de biroul tău și să-ți spună „Nu, celălalt Eric”.