Sådan sletter du en bruger på Linux (og fjerner hvert spor)

At slette en bruger på Linux involverer mere, end du tror. Hvis du er systemadministrator, vil du gerne fjerne alle spor af kontoen og dens adgang fra dine systemer. Vi viser dig de trin, du skal tage.

Hvis du bare vil slette en brugerkonto fra dit system og ikke er bekymret for at afslutte kørende processer og andre oprydningsopgaver, skal du følge trinene i afsnittet “Sletning af brugerkontoen” nedenfor. Du skal bruge kommandoen deluser på Debian-baserede distributioner og kommandoen userdel på andre Linux-distributioner.

Brugerkonti på Linux

Lige siden første tidsdelingssystemer dukkede op i begyndelsen af ​​1960’erne og medbragte muligheden for, at flere brugere kan arbejde på en enkelt computer, har der været et behov for at isolere og opdele hver brugers filer og data fra alle de andre brugere. Og så brugerkonti—og adgangskoder-blev født.

Brugerkonti har en administrativ overhead. De skal oprettes, når brugeren første gang skal have adgang til computeren. De skal fjernes, når den adgang ikke længere er påkrævet. På Linux er der en række trin, der skal følges for korrekt og metodisk at fjerne brugeren, deres filer og deres konto fra computeren.

Hvis du er systemadministrator, påhviler dette ansvar dig. Sådan gør du.

Vores Scenario

Der er en række årsager til, at en konto muligvis skal slettes. En medarbejder flytter måske til et andet team eller forlader virksomheden helt. Kontoen er muligvis blevet oprettet til et kortvarigt samarbejde med en besøgende fra en anden virksomhed. Team-ups er almindelige i den akademiske verden, hvor forskningsprojekter kan spænde over afdelinger, forskellige universiteter og endda kommercielle enheder. Ved afslutningen af ​​projektet skal systemadministratoren udføre husholdningen og fjerne unødvendige konti.

Det værst tænkelige scenarie er, når nogen forlader under en sky på grund af en forseelse. Sådanne hændelser sker normalt pludseligt med lidt forvarsel. Det giver systemadministratoren meget lidt tid til at planlægge, og det haster med at få kontoen låst, lukket og slettet – med en kopi af brugerens filer sikkerhedskopieret i tilfælde af, at de er nødvendige til efterforskning efter lukning.

I vores scenarie vil vi foregive, at en bruger, Eric, har gjort noget, der berettiger hans øjeblikkelige fjernelse fra lokalerne. I dette øjeblik er han uvidende om dette, han arbejder stadig og er logget ind. Så snart du giver et nik til sikkerheden, vil han blive eskorteret fra bygningen.

  Sådan opretter du aliaser og skalfunktioner på Linux

Alt er klar. Alle øjne er rettet mod dig.

Tjek login

Lad os se, om han virkelig er logget ind, og hvis han er, hvor mange sessioner han arbejder med. Den der kommanderer vil vise aktive sessioner.

who

Erik er logget ind én gang. Lad os se, hvilke processer han kører.

Gennemgang af brugerens processer

Vi kan bruge kommandoen ps til liste de processer, denne bruger kører. Indstillingen -u (bruger) lader os bede ps om at begrænse dets output til de processer, der kører under ejerskabet af den brugerkonto.

ps -u eric

Vi kan se de samme processer med mere information ved at bruge den øverste kommando. top har også en -U (bruger) mulighed for at begrænse output til de processer, der ejes af en enkelt bruger. Bemærk, at det denne gang er et stort “U”.

top -U eric

Vi kan se hukommelsen og CPU-forbruget for hver opgave og kan hurtigt lede efter alt med mistænkelig aktivitet. Vi er ved at tvangsdræbe alle hans processer, så det er sikrest at bruge et øjeblik på hurtigt at gennemgå processerne og kontrollere og sikre, at andre brugere ikke vil blive generet, når du afslutter brugerkontoen erics processer.

Det ser ikke ud til, at han laver meget, han bruger bare mindre til at se en fil. Vi kan trygt fortsætte. Men før vi slår hans processer ihjel, fryser vi kontoen ved at låse adgangskoden.

Låser kontoen

Vi låser kontoen, før vi dræber processerne, fordi når vi dræber processerne, logger den brugeren ud. Hvis vi allerede har ændret hans adgangskode, vil han ikke kunne logge ind igen.

De krypterede brugeradgangskoder er gemt i filen /etc/shadow. Du ville normalt ikke genere disse næste trin, men for at du kan se, hvad der sker i filen /etc/shadow, når du låser kontoen, tager vi en lille omvej. Vi kan bruge følgende kommando til at se på de to første felter i indtastningen for eric-brugerkontoen.

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

awk kommandoen analyserer felter fra tekstfiler og eventuelt manipulerer dem. Vi bruger muligheden -F (feltseparator) til at fortælle awk, at filen bruger et kolon ” : ” til at adskille felterne. Vi vil søge efter en linje med mønsteret “eric” i. For matchende linjer udskriver vi det første og andet felt. Disse er kontonavnet og den krypterede adgangskode.

  4 gode apps til at tage noter på Linux

Indtastningen for brugerkonto eric udskrives for os.

For at låse kontoen bruger vi kommandoen passwd. Vi bruger muligheden -l (lås) og indtast navnet på brugerkontoen for at låse.

sudo passwd -l eric

Hvis vi tjekker filen /etc/passwd igen, vil vi se, hvad der er sket.

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

Et udråbstegn er blevet tilføjet til starten af ​​den krypterede adgangskode. Den overskriver ikke det første tegn, den føjes blot til starten af ​​adgangskoden. Det er alt, der kræves for at forhindre en bruger i at kunne logge ind på den pågældende konto.

Nu hvor vi har forhindret brugeren i at logge ind igen, kan vi dræbe hans processer og logge ham ud.

Dræber processerne

Der er forskellige måder at dræbe en brugers processer på, men kommandoen vist her er bredt tilgængelig og er en mere moderne implementering end nogle af alternativerne. Kommandoen pkill vil finde og dræbe processer. Vi sender DÆB-signalet ind og bruger muligheden -u (bruger).

sudo pkill -KILL -u eric

Du vender tilbage til kommandoprompten på en decideret anti-klimaktisk måde. For at sikre, at der er sket noget, lad os tjekke hvem igen:

who

Hans session er væk. Han er blevet logget af, og hans processer er blevet stoppet. Det har taget noget af det hastende ud af situationen. Nu kan vi slappe lidt af og fortsætte med resten af ​​opsugningen, mens sikkerhedsvagten tager en tur over til Erics skrivebord.

Arkivering af brugerens hjemmekatalog

Det er ikke udelukket, at der i et scenarie som dette kræves adgang til brugerens filer i fremtiden. Enten som en del af en undersøgelse eller simpelthen fordi deres afløser muligvis skal henvise til deres forgængers arbejde. Vi bruger tar-kommandoen at arkivere hele deres hjemmemappe.

De muligheder vi bruger er:

c: Opret en arkivfil.
f: Brug det angivne filnavn til navnet på arkivet.
j: Brug bzip2-komprimering.
v: Giv detaljeret output, efterhånden som arkivet oprettes.

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

En masse skærmoutput vil rulle i terminalvinduet. Brug kommandoen ls for at kontrollere, at arkivet er blevet oprettet. Vi bruger mulighederne -l (langt format) og -h (læsbart for mennesker).

ls -lh eric-20200802.tar.bz

En fil på 722 MB er blevet oprettet. Dette kan kopieres et sikkert sted til senere gennemgang.

Fjernelse af cron-job

Vi må hellere tjekke, hvis der er planlagt cron-job til brugerkontoen eric. Et cron-job er en kommando, der udløses på bestemte tidspunkter eller intervaller. Vi kan kontrollere, om der er planlagt nogle cron-job for denne brugerkonto ved at bruge ls:

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

Hvis der findes noget på denne placering, betyder det, at der er cron-job i kø for den brugerkonto. Vi kan slette dem med denne crontab-kommando. Valgmuligheden -r (fjern) fjerner jobs, og indstillingen -u (bruger) fortæller crontab hvis job skal fjernes.

sudo crontab -r -u eric

Jobbene slettes stille og roligt. For alt hvad vi ved, hvis Eric havde haft mistanke om, at han var ved at blive smidt ud, kunne han have planlagt et ondsindet job. Dette trin er bedste praksis.

  Sådan gør du Gnome Shell brugervenlig på Linux

Fjernelse af udskriftsjob

Måske havde brugeren afventende udskriftsjob? Bare for at være sikker kan vi rense udskriftskøen for alle job, der tilhører brugerkontoen eric. lprm kommandoen fjerner job fra udskriftskøen. Indstillingen -U (brugernavn) lader dig fjerne job, der ejes af den navngivne brugerkonto:

lprm -U eric

Jobbene fjernes, og du vender tilbage til kommandolinjen.

Sletning af brugerkontoen

Vi har allerede sikkerhedskopieret filerne fra mappen /home/eric/, så vi kan gå videre og slette brugerkontoen og slette mappen /home/eric/ på samme tid.

Kommandoen der skal bruges afhænger af hvilken distribution af Linux du bruger. Til Debian-baserede Linux-distributioner, kommandoen er deluser, og for resten af ​​Linux-verdenen, det er brugerdel.

Faktisk er begge kommandoer tilgængelige på Ubuntu. Jeg havde halvt forventet, at den ene var et alias for den anden, men de er distinkte binære filer.

type deluser
type userdel

Selvom de begge er tilgængelige, anbefales det at bruge deluser på Debian-afledte distributioner:

“userdel er et lavniveauværktøj til at fjerne brugere. På Debian bør administratorer normalt bruge deluser(8) i stedet.”

Det er tydeligt nok, så kommandoen, der skal bruges på denne Ubuntu-computer, er fejlbruger. Fordi vi også ønsker, at deres hjemmemappe skal fjernes, bruger vi flaget –remove-home:

sudo deluser --remove-home eric

Kommandoen, der skal bruges til ikke-Debian-distributioner, er userdel, med flaget –remove:

sudo userdel --remove eric

Alle spor af brugerkontoen eric er blevet slettet. Vi kan kontrollere, at /home/eric/biblioteket er blevet fjernet:

ls /home

Eric-gruppen er også blevet fjernet, fordi brugerkontoen eric var den eneste post i den. Vi kan tjekke dette ret nemt ved at overføre indholdet af /etc/group gennem grep:

sudo less /etc/group | grep eric

Det er en Wrap

Eric er væk for sine synder. Sikkerheden fører ham stadig ud af bygningen, og du har allerede sikret og arkiveret hans filer, slettet hans konto og renset systemet for eventuelle rester.

Nøjagtighed overtrumfer altid hastighed. Sørg for at overveje hvert trin, før du tager det. Du vil ikke have, at nogen går hen til dit skrivebord og siger “Nej, den anden Eric.”