Hoe een gebruiker op Linux te verwijderen (en elk spoor te verwijderen)

Een shell-prompt in een terminalvenster op een Linux-computer.
Fatmawati Achmad Zaenuri / Shutterstock

Het verwijderen van een gebruiker op Linux omvat meer dan u denkt. Als u een systeembeheerder bent, wilt u alle sporen van het account en de toegang ervan vanaf uw systemen verwijderen. We laten u de stappen zien die u moet nemen.

Als u alleen een gebruikersaccount van uw systeem wilt verwijderen en u zich geen zorgen maakt over het beëindigen van lopende processen en andere opruimtaken, volgt u de stappen in het gedeelte “Het gebruikersaccount verwijderen” hieronder. Je hebt de deluser commando op op Debian gebaseerde distributies en de userdel commando op andere Linux-distributies.

Gebruikersaccounts op Linux

Sinds de eerste timesharing-systemen in het begin van de jaren zestig verschenen en de mogelijkheid voor meerdere gebruikers met zich meebracht om op één computer te werken, was het nodig om de bestanden en gegevens van elke gebruiker te isoleren en in compartimenten op te delen van alle andere gebruikers. En zo werden gebruikersaccounts – en wachtwoorden – geboren.

Gebruikersaccounts hebben een administratieve overhead. Ze moeten worden gemaakt wanneer de gebruiker voor het eerst toegang tot de computer nodig heeft. Ze moeten worden verwijderd wanneer die toegang niet langer nodig is. Op Linux is er een reeks stappen die moeten worden gevolgd om de gebruiker, zijn bestanden en zijn account correct en methodisch van de computer te verwijderen.

Als u de systeembeheerder bent, valt die verantwoordelijkheid bij u. Hier leest u hoe u het moet aanpakken.

Ons scenario

Er zijn een aantal redenen waarom een ​​account moet worden verwijderd. Een personeelslid kan naar een ander team verhuizen of het bedrijf verlaten. Het account is mogelijk gemaakt voor een korte termijn samenwerking met een bezoeker van een ander bedrijf. Team-ups zijn gebruikelijk in de academische wereld, waar onderzoeksprojecten afdelingen, verschillende universiteiten en zelfs commerciële entiteiten kunnen omvatten. Aan het einde van het project moet de systeembeheerder de huishouding uitvoeren en onnodige accounts verwijderen.

Het ergste scenario is wanneer iemand onder een wolk vertrekt vanwege een misdrijf. Dergelijke gebeurtenissen gebeuren meestal plotseling, met weinig waarschuwing vooraf. Dat geeft de systeembeheerder heel weinig tijd om te plannen, en een urgentie om het account te vergrendelen, sluiten en verwijderen – met een back-up van een kopie van de bestanden van de gebruiker voor het geval ze nodig zijn voor forensisch onderzoek na sluiting.

In ons scenario doen we alsof een gebruiker, Eric, iets heeft gedaan dat zijn onmiddellijke verwijdering uit het pand rechtvaardigt. Op dit moment weet hij dit niet, hij is nog aan het werk, en ingelogd. Zodra je naar de beveiliging knikt, wordt hij het gebouw uit geëscorteerd.

Alles is klaar. Alle ogen zijn op jou gericht.

Controleer de login

Eens kijken of hij echt is ingelogd en, zo ja, met hoeveel sessies hij werkt. De who commando geeft een lijst van actieve sessies.

who

wie in een terminalvenster

Eric is een keer ingelogd. Laten we eens kijken welke processen hij uitvoert.

De processen van de gebruiker bekijken

We kunnen de ps opdracht om de processen weer te geven die deze gebruiker uitvoert. De -u (gebruiker) optie laat het ons weten ps om de uitvoer ervan te beperken tot de processen die worden uitgevoerd onder het eigendom van dat gebruikersaccount.

ps -u eric

ps -u eric in een terminalvenster

We kunnen dezelfde processen zien met meer informatie met behulp van de top opdracht. top heeft ook een -U (gebruiker) optie om de uitvoer te beperken tot de processen die eigendom zijn van een enkele gebruiker. Merk op dat het deze keer een hoofdletter ‘U’ is.

top -U eric

top -U eric in een terminalvenster

We kunnen het geheugen- en CPU-gebruik van elke taak zien en snel naar iets met verdachte activiteit zoeken. We staan ​​op het punt om al zijn processen met geweld te beëindigen, dus het is het veiligst om even de tijd te nemen om de processen snel te bekijken en te controleren en ervoor te zorgen dat andere gebruikers geen hinder zullen ondervinden wanneer u het gebruikersaccount beëindigt eric’s processen.

Uitvoer van top -U eric in een terminalvenster

Het lijkt erop dat hij niet veel doet, alleen maar gebruiken less om een ​​bestand te bekijken. We zijn veilig om verder te gaan. Maar voordat we zijn processen beëindigen, bevriezen we het account door het wachtwoord te vergrendelen.

VERWANT: Hoe de ps-opdracht te gebruiken om Linux-processen te bewaken

Het account vergrendelen

We vergrendelen het account voordat we de processen beëindigen, want wanneer we de processen beëindigen, wordt de gebruiker uitgelogd. Als we zijn wachtwoord al hebben gewijzigd, kan hij niet meer inloggen.

De gecodeerde gebruikerswachtwoorden worden opgeslagen in het /etc/shadow het dossier. U zou normaal gesproken geen moeite doen met deze volgende stappen, maar zodat u kunt zien wat er gebeurt in het /etc/shadow bestand wanneer u het account vergrendelt, nemen we een kleine omweg. We kunnen de volgende opdracht gebruiken om naar de eerste twee velden van het item voor de eric gebruikers account.

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

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

Het awk-commando parseert velden uit tekstbestanden en manipuleert ze optioneel. We gebruiken de -F (veldscheidingsteken) optie om te vertellen awk dat het bestand een dubbele punt gebruikt ” : ”Om de velden te scheiden. We gaan op zoek naar een regel met het patroon “eric” erin. Voor overeenkomende regels zullen we de eerste en tweede velden afdrukken. Dit zijn de accountnaam en het gecodeerde wachtwoord.

De invoer voor gebruikersaccount eric wordt voor ons afgedrukt.

Om het account te vergrendelen gebruiken we de passwd opdracht. We gebruiken de -l (lock) optie en geef de naam van het gebruikersaccount door om te vergrendelen.

sudo passwd -l eric

sudo passwd -l eric in een terminalvenster

Als we het /etc/passwd bestand opnieuw, we zullen zien wat er is gebeurd.

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

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

Aan het begin van het versleutelde wachtwoord is een uitroepteken toegevoegd. Het eerste teken wordt niet overschreven, het wordt alleen aan het begin van het wachtwoord toegevoegd. Dat is alles wat nodig is om te voorkomen dat een gebruiker zich kan aanmelden bij dat account.

Nu we hebben voorkomen dat de gebruiker opnieuw inlogt, kunnen we zijn processen beëindigen en hem uitloggen.

Het doden van de processen

Er zijn verschillende manieren om de processen van een gebruiker te beëindigen, maar de hier getoonde opdracht is algemeen verkrijgbaar en is een modernere implementatie dan sommige van de alternatieven. De pkill commando zal processen zoeken en beëindigen. We geven het KILL-signaal door en gebruiken de -u (gebruiker) optie.

sudo pkill -KILL -u eric

sudo pkill -KILL -u eric in een terminalvenster

U keert terug naar de opdrachtprompt op een beslist anti-climax-manier. Laten we eens kijken om er zeker van te zijn dat er iets is gebeurd who nog een keer:

who

wie in een terminalvenster

Zijn sessie is voorbij. Hij is uitgelogd en zijn processen zijn gestopt. Dat heeft een deel van de urgentie uit de situatie gehaald. Nu kunnen we wat ontspannen en doorgaan met de rest van het dweilen, want de beveiliging loopt naar Erics bureau.

VERWANT: Processen beëindigen vanaf de Linux-terminal

Archivering van de basismap van de gebruiker

Het is niet uitgesloten dat in een scenario als dit in de toekomst toegang tot de bestanden van de gebruiker vereist is. Ofwel als onderdeel van een onderzoek of simpelweg omdat hun vervanging wellicht moet verwijzen naar het werk van hun voorganger. We gebruiken de tar opdracht om hun volledige homedirectory te archiveren.

De opties die we gebruiken zijn:

  • c: Maak een archiefbestand.
  • f: Gebruik de opgegeven bestandsnaam voor de naam van het archief.
  • j: Gebruik bzip2-compressie.
  • v: Biedt uitgebreide uitvoer terwijl het archief wordt gemaakt.
sudo tar cfjv eric-20200820.tar.bz /home/eric

sudo tar cfjv eric-20200820.tar.bz / home / eric in een terminalvenster

Veel schermuitvoer zal in het terminalvenster scrollen. Om te controleren of het archief is gemaakt, gebruikt u de ls opdracht. We gebruiken de -l (lang formaat) en -h (door mensen leesbare) opties.

ls -lh eric-20200802.tar.bz

sudo tar cfjv eric-20200820.tar.bz / home / eric in een terminalvenster

Er is een bestand van 722 MB aangemaakt. Dit kan op een veilige plek worden gekopieerd voor latere beoordeling.

Cron-taken verwijderen

We kunnen beter kijken of die er zijn cron taken gepland voor gebruikersaccount eric. EEN cron job is een commando dat op gespecificeerde tijden of intervallen wordt geactiveerd. We kunnen kijken of die er zijn cron taken gepland voor dit gebruikersaccount met ls:

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

sudo ls -lh / var / spool / cron / crontabs / eric in een terminalvenster

Als er iets op deze locatie bestaat, betekent dit dat er iets is cron taken in de wachtrij voor dat gebruikersaccount. Hiermee kunnen we ze verwijderen crontab opdracht. De -r (remove) optie zal de jobs verwijderen, en de -u (gebruiker) optie vertelt crontab wiens banen te verwijderen.

sudo crontab -r -u eric

sudo crontab -r -u eric in een terminalvenster

De taken worden stil verwijderd. Voor zover we weten, als Eric had vermoed dat hij op het punt stond uitgezet te worden, had hij misschien een kwaadaardige klus gepland. Deze stap is de beste methode.

Afdruktaken verwijderen

Misschien had de gebruiker afdruktaken in behandeling? Voor de zekerheid kunnen we de afdrukwachtrij verwijderen van alle taken die bij het gebruikersaccount horen eric. De lprm opdracht verwijdert taken uit de afdrukwachtrij. De -U Met de optie (gebruikersnaam) kunt u taken verwijderen die eigendom zijn van het genoemde gebruikersaccount:

lprm -U eric

lprm -U eric in een terminalvenster

De taken worden verwijderd en u keert terug naar de opdrachtregel.

Het gebruikersaccount verwijderen

We hebben al een back-up gemaakt van de bestanden van het /home/eric/ directory, zodat we door kunnen gaan en het gebruikersaccount kunnen verwijderen en het /home/eric/ directory tegelijkertijd.

De te gebruiken opdracht is afhankelijk van de Linux-distributie die u gebruikt. Voor op Debian gebaseerde Linux-distributies is de opdracht deluser, en voor de rest van de Linux-wereld is het dat ook userdel.

Eigenlijk zijn op Ubuntu beide opdrachten beschikbaar. Ik had half verwacht dat de een een alias van de ander zou zijn, maar het zijn verschillende binaries.

type deluser
type userdel

typ deluser in een terminalvenster

Hoewel ze beide beschikbaar zijn, is de aanbeveling om deluser op van Debian afgeleide distributies:

userdel is een hulpprogramma op laag niveau voor het verwijderen van gebruikers. Op Debian zouden beheerders gewoonlijk deluser(8). “

Dat is duidelijk genoeg, dus de opdracht die u op deze Ubuntu-computer moet gebruiken, is deluser. Omdat we ook willen dat hun homedirectory wordt verwijderd, gebruiken we de --remove-home vlag:

sudo deluser --remove-home eric

sudo deluser --remove-home eric in een terminalvenster

Het te gebruiken commando voor niet-Debian distributies is userdel, met de --remove vlag:

sudo userdel --remove eric

Alle sporen van gebruikersaccount eric zijn gewist. We kunnen controleren of het /home/eric/directory is verwijderd:

ls /home

ls / home in een terminalvenster

De eric groep is ook verwijderd omdat het gebruikersaccount eric was de enige vermelding erin. We kunnen dit vrij eenvoudig controleren door de inhoud van /etc/group door grep:

sudo less /etc/group | grep eric

sudo less / etc / group |  grep eric in een terminalvenster

Het zit erop

Eric, voor zijn zonden, is weg. De beveiliging leidt hem nog steeds het gebouw uit en je hebt zijn bestanden al beveiligd en gearchiveerd, zijn account verwijderd en het systeem van alle overblijfselen opgeschoond.

Nauwkeurigheid overtreft altijd snelheid. Zorg ervoor dat u elke stap overweegt voordat u deze zet. Je wilt niet dat iemand naar je bureau komt en zegt: “Nee, de andere Eric.”

Nieuwste artikelen

spot_img

Related Stories

Leave A Reply

Vul alstublieft uw commentaar in!
Vul hier uw naam in