Hur man tar bort en användare på Linux (och tar bort varje spår)

Att ta bort en användare på Linux innebär mer än du tror. Om du är systemadministratör vill du ta bort alla spår av kontot och dess åtkomst från dina system. Vi visar dig stegen att ta.

Om du bara vill ta bort ett användarkonto från ditt system och inte är orolig för att avsluta några pågående processer och andra rensningsuppgifter, följ stegen i avsnittet ”Ta bort användarkontot” nedan. Du behöver kommandot deluser på Debian-baserade distributioner och kommandot userdel på andra Linux-distributioner.

Användarkonton på Linux

Ända sedan första tidsdelningssystem dök upp i början av 1960-talet och tog med sig möjligheten för flera användare att arbeta på en enda dator, det har funnits ett behov av att isolera och dela upp filer och data för varje användare från alla andra användare. Och så användarkonton—och lösenord-föddes.

Användarkonton har administrativa omkostnader. De måste skapas när användaren först behöver tillgång till datorn. De måste tas bort när den åtkomsten inte längre behövs. På Linux finns det en sekvens av steg som bör följas för att korrekt och metodiskt ta bort användaren, deras filer och deras konto från datorn.

Om du är systemadministratör ligger ansvaret på dig. Så här går du tillväga.

Vårt scenario

Det finns många anledningar till att ett konto kan behöva tas bort. En anställd kanske flyttar till ett annat team eller lämnar företaget helt. Kontot kan ha skapats för ett kortvarigt samarbete med en besökare från ett annat företag. Team-ups är vanliga i akademin, där forskningsprojekt kan sträcka sig över institutioner, olika universitet och till och med kommersiella enheter. Vid slutet av projektet måste systemadministratören sköta hushållningen och ta bort onödiga konton.

Det värsta scenariot är när någon lämnar under ett moln på grund av ett förseelse. Sådana händelser inträffar vanligtvis plötsligt, med liten förvarning. Det ger systemadministratören väldigt lite tid att planera och en brådskande tid att få kontot låst, stängt och raderat – med en kopia av användarens filer säkerhetskopierade ifall de skulle behövas för kriminalteknik efter stängning.

I vårt scenario kommer vi att låtsas att en användare, Eric, har gjort något som motiverar att han omedelbart tas bort från lokalerna. I detta ögonblick är han omedveten om detta, han arbetar fortfarande och är inloggad. Så fort du nickar till säkerheten kommer han att eskorteras från byggnaden.

Allt är klart. Alla ögon är på dig.

Kontrollera inloggningen

Låt oss se om han verkligen är inloggad och, om han är det, hur många sessioner han arbetar med. Den som befaller kommer att lista aktiva sessioner.

who

Eric är inloggad en gång. Låt oss se vilka processer han kör.

Granska användarens processer

Vi kan använda kommandot ps för att lista de processer som denna användare kör. Alternativet -u (användare) låter oss säga åt ps att begränsa dess utdata till de processer som körs under ägandet av det användarkontot.

ps -u eric

Vi kan se samma processer med mer information med hjälp av toppkommandot. top har också ett -U-alternativ (användare) för att begränsa utdata till de processer som ägs av en enskild användare. Observera att den här gången är det ett versaler ”U”.

top -U eric

Vi kan se minnet och CPU-användningen för varje uppgift och kan snabbt leta efter allt med misstänkt aktivitet. Vi är på väg att tvångsdöda alla hans processer, så det är säkrast att ta en stund för att snabbt granska processerna och kontrollera och se till att andra användare inte kommer att bli besvär när du avslutar användarkontots processer.

Det ser inte ut som att han gör mycket, bara använder mindre för att visa en fil. Vi är trygga att fortsätta. Men innan vi dödar hans processer, fryser vi kontot genom att låsa lösenordet.

Låser kontot

Vi låser kontot innan vi dödar processerna, för när vi dödar processerna kommer den att logga ut användaren. Om vi ​​redan har ändrat hans lösenord kommer han inte att kunna logga in igen.

De krypterade användarlösenorden lagras i filen /etc/shadow. Du skulle normalt inte bry dig om dessa nästa steg, men så att du kan se vad som händer i filen /etc/shadow när du låser kontot tar vi en liten omväg. Vi kan använda följande kommando för att titta på de två första fälten i posten för eric användarkonto.

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

Kommandot awk analyserar fält från textfiler och eventuellt manipulerar dem. Vi använder alternativet -F (fältseparator) för att tala om för awk att filen använder ett kolon ” : ” för att separera fälten. Vi ska söka efter en linje med mönstret ”eric” i. För matchande rader skriver vi ut det första och andra fältet. Dessa är kontonamnet och det krypterade lösenordet.

Posten för användarkontot eric skrivs ut åt oss.

För att låsa kontot använder vi kommandot passwd. Vi använder alternativet -l (lås) och skicka in namnet på användarkontot för att låsa.

sudo passwd -l eric

Om vi ​​kontrollerar filen /etc/passwd igen, ser vi vad som har hänt.

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

Ett utropstecken har lagts till i början av det krypterade lösenordet. Det skriver inte över det första tecknet, det läggs bara till i början av lösenordet. Det är allt som krävs för att hindra en användare från att kunna logga in på det kontot.

Nu när vi har förhindrat användaren från att logga in igen kan vi döda hans processer och logga ut honom.

Att döda processerna

Det finns olika sätt att döda en användares processer, men kommandot som visas här är allmänt tillgängligt och är en modernare implementering än några av alternativen. Kommandot pkill kommer att hitta och döda processer. Vi skickar in DÖDA-signalen och använder alternativet -u (användare).

sudo pkill -KILL -u eric

Du återvänds till kommandotolken på ett avgjort anti-klimaktiskt sätt. Låt oss kontrollera vem igen för att vara säker på att något har hänt:

who

Hans session är borta. Han har blivit utloggad och hans processer har stoppats. Det har tagit bort en del av brådskan ur situationen. Nu kan vi slappna av lite och fortsätta med resten av sopandet när säkerhetsvakten tar en promenad bort till Erics skrivbord.

Arkivering av användarens hemkatalog

Det är inte uteslutet att i ett scenario som detta kommer åtkomst till användarens filer att krävas i framtiden. Antingen som en del av en utredning eller helt enkelt för att deras ersättare kan behöva hänvisa tillbaka till sin föregångares arbete. Vi använder kommandot tar för att arkivera hela hemkatalogen.

Alternativen vi använder är:

c: Skapa en arkivfil.
f: Använd det angivna filnamnet för namnet på arkivet.
j: Använd bzip2-komprimering.
v: Ge utförlig utdata när arkivet skapas.

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

En hel del skärmutdata kommer att rulla i terminalfönstret. För att kontrollera att arkivet har skapats, använd kommandot ls. Vi använder alternativen -l (långt format) och -h (läsbart för människor).

ls -lh eric-20200802.tar.bz

En fil på 722 MB har skapats. Detta kan kopieras någonstans säkert för senare granskning.

Ta bort cron jobb

Det är bättre att vi kollar ifall det finns några cron-jobb planerade för användarkontot eric. Ett cron-jobb är ett kommando som utlöses vid angivna tider eller intervall. Vi kan kontrollera om det finns några cron-jobb schemalagda för detta användarkonto genom att använda ls:

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

Om något finns på den här platsen betyder det att det finns cron-jobb i kö för det användarkontot. Vi kan ta bort dem med detta crontab-kommando. Alternativet -r (ta bort) tar bort jobben, och alternativet -u (användare) säger till crontab vars jobb att ta bort.

sudo crontab -r -u eric

Jobben raderas tyst. För allt vi vet, om Eric hade misstänkt att han var på väg att bli vräkt, kanske han hade planerat ett skadligt jobb. Detta steg är bästa praxis.

Ta bort utskriftsjobb

Kanske hade användaren väntande utskriftsjobb? Bara för att vara säker kan vi rensa utskriftskön från alla jobb som tillhör användarkontot eric. Kommandot lprm tar bort jobb från utskriftskön. Alternativet -U (användarnamn) låter dig ta bort jobb som ägs av det namngivna användarkontot:

lprm -U eric

Jobben tas bort och du återgår till kommandoraden.

Ta bort användarkontot

Vi har redan säkerhetskopierat filerna från katalogen /home/eric/, så vi kan gå vidare och ta bort användarkontot och ta bort katalogen /home/eric/ samtidigt.

Kommandot som ska användas beror på vilken distribution av Linux du använder. För Debianbaserade Linux-distributionerkommandot är deluser, och för resten av Linux-världendet är användardel.

Faktiskt, på Ubuntu är båda kommandona tillgängliga. Jag förväntade mig hälften att den ena skulle vara ett alias för den andra, men de är distinkta binära filer.

type deluser
type userdel

Även om de båda är tillgängliga, är rekommendationen att använda deluser på Debian-härledda distributioner:

”userdel är ett lågnivåverktyg för att ta bort användare. På Debian bör administratörer vanligtvis använda deluser(8) istället.”

Det är tydligt nog, så kommandot som ska användas på den här Ubuntu-datorn är avbrukare. Eftersom vi också vill att deras hemkatalog ska tas bort använder vi flaggan –remove-home:

sudo deluser --remove-home eric

Kommandot att använda för icke-Debiandistributioner är userdel, med flaggan –remove:

sudo userdel --remove eric

Alla spår av användarkontot eric har raderats. Vi kan kontrollera att /home/eric/katalogen har tagits bort:

ls /home

Eric-gruppen har också tagits bort eftersom användarkontot eric var den enda posten i den. Vi kan kontrollera detta ganska enkelt genom att skicka innehållet i /etc/group genom grep:

sudo less /etc/group | grep eric

Det är en wrap

Eric är borta för sina synder. Säkerheten leder honom fortfarande ut ur byggnaden och du har redan säkrat och arkiverat hans filer, raderat hans konto och rensat systemet från eventuella rester.

Noggrannhet övertrumfar alltid hastighet. Se till att du överväger varje steg innan du tar det. Du vill inte att någon går fram till ditt skrivbord och säger ”Nej, den andre Eric.”