Beklager, men skript er ikke aktivert. Du kan ikke se alle funksjonene på denne siden.
Å fjerne en bruker fra Linux innebærer mer enn bare å trykke på en sletteknapp. For systemadministratorer er det viktig å eliminere alle spor av kontoen og tilhørende tilgang. Vi vil nå se nærmere på de nødvendige trinnene.
Dersom målet kun er å slette brukerkontoen og du ikke er opptatt av å stoppe pågående prosesser eller andre oppryddingsoppgaver, kan du hoppe rett til delen «Slette brukerkontoen» nedenfor. Der vil du finne at du trenger kommandoen deluser
for Debian-baserte systemer og userdel
for de fleste andre Linux-distribusjoner.
Brukerkontoer i Linux
Helt siden de første tidsdelingssystemene så dagens lys tidlig på 1960-tallet, som tillot flere brukere å arbeide på en enkelt datamaskin, har behovet for å skille og beskytte hver enkelt brukers filer og data fra de andre vært essensielt. Dermed ble brukerkontoer og passord opprettet.
Brukerkontoer krever administrativ oppfølging. De må etableres når en bruker skal ha tilgang til maskinen, og fjernes når denne tilgangen ikke lenger er nødvendig. I Linux er det en bestemt prosedyre som bør følges for å fjerne en bruker, vedkommendes filer og selve kontoen på en grundig og systematisk måte.
Som systemadministrator hviler dette ansvaret på dine skuldre. La oss se på hvordan du bør gå frem.
Vårt Scenario
Det finnes mange grunner til at en konto må avvikles. En ansatt kan bli overført til et annet team eller slutte i bedriften. Kontoen kan ha blitt satt opp for et kortvarig samarbeid med en ekstern konsulent. Samarbeid på tvers av institusjoner er vanlig, spesielt innen akademia, hvor forskningsprosjekter kan omfatte flere avdelinger, universiteter og til og med kommersielle aktører. Ved prosjektets slutt må systemadministratoren sørge for opprydding og fjerne unødvendige kontoer.
Det verste scenariet er når noen slutter under uheldige omstendigheter, kanskje på grunn av et regelbrudd. Slike situasjoner oppstår gjerne uten forvarsel, og systemadministratoren har svært lite tid til å planlegge. Det er da viktig å få kontoen raskt sperret, stengt og slettet, samtidig som en kopi av brukerens filer sikkerhetskopieres i tilfelle de er nødvendige for etterforskning.
I vårt scenario later vi som at en bruker, Eric, har gjort noe som krever at han umiddelbart må fjernes. Han er ikke klar over dette, og er fortsatt pålogget og i arbeid. Så snart du gir grønt lys til sikkerheten, vil han bli eskortert ut av bygningen.
Alt er klart. Alle øyne er rettet mot deg.
Sjekk Innloggingen
La oss starte med å verifisere om han faktisk er innlogget, og eventuelt hvor mange økter han har aktive. Kommandoen who
gir en oversikt over aktive sesjoner.
who
Det ser ut til at Eric er logget inn med én sesjon. La oss sjekke hvilke prosesser han kjører.
Gjennomgang av Brukerens Prosesser
Med kommandoen ps
kan vi vise alle prosessene som kjører under brukerens identitet. Ved å bruke alternativet -u
(bruker) kan vi begrense utskriften til kun å vise prosesser som eies av den aktuelle brukerkontoen.
ps -u eric
Vi kan også se de samme prosessene med mer detaljert informasjon ved å bruke kommandoen top
. top
har også en -U
(bruker) opsjon for å filtrere output basert på en spesifikk brukers prosesser. Merk at vi denne gangen bruker stor «U».
top -U eric
Her kan vi se minne- og CPU-bruken for hver prosess. Dette gir oss muligheten til raskt å identifisere eventuell mistenkelig aktivitet. Vi er imidlertid i ferd med å tvangsavslutte alle hans prosesser, så det kan være fornuftig å ta en rask gjennomgang for å sikre at vi ikke forstyrrer andre brukere når vi avslutter Erics sesjoner.
Han ser ikke ut til å gjøre noe spesielt; han leser en fil. Vi kan trygt fortsette. Men før vi avslutter hans prosesser, skal vi fryse kontoen ved å låse passordet.
Låse Kontoen
Vi låser kontoen før vi avslutter prosessene fordi prosessavslutningen vil logge brukeren ut. Hvis vi allerede har endret passordet, vil han ikke kunne logge seg inn igjen.
De krypterte brukerpassordene lagres i filen /etc/shadow
. Vanligvis ville man ikke bry seg om de neste trinnene, men for at du skal kunne se hva som skjer i /etc/shadow
filen når du låser kontoen, tar vi en liten omvei. Vi kan bruke denne kommandoen for å inspisere de to første feltene i oppføringen for brukerkontoen «eric».
sudo awk -F: '/eric/ {print $1,$2}' /etc/shadow
awk
-kommandoen brukes til å behandle og manipulere felt fra tekstfiler. Vi bruker opsjonen -F
(feltseparator) for å fortelle awk at filen bruker et kolon «:
» for å separere feltene. Vi søker etter en linje som inneholder mønsteret «eric». For linjer som matcher, skriver vi ut det første og andre feltet, som er henholdsvis kontonavnet og det krypterte passordet.
Oppføringen for brukerkontoen «eric» blir presentert.
For å låse kontoen bruker vi kommandoen passwd
. Vi benytter oss av opsjonen -l
(lås) og oppgir navnet på brukerkontoen for å låse den.
sudo passwd -l eric
Hvis vi sjekker /etc/shadow
filen igjen, vil vi se endringen:
sudo awk -F: '/eric/ {print $1,$2}' /etc/shadow
Et utropstegn har blitt lagt til i starten av det krypterte passordet. Det overskriver ikke det første tegnet, men legges bare til i starten av passordet. Dette er nok til å hindre en bruker i å logge inn på kontoen.
Nå som vi har hindret brukeren fra å logge inn igjen, kan vi avslutte prosessene og logge han ut.
Avslutte Prosessene
Det er forskjellige måter å avslutte en brukers prosesser på, men kommandoen som presenteres her er allment tilgjengelig og en mer moderne implementasjon. Kommandoen pkill
finner og avslutter prosesser. Vi sender inn et KILL
-signal og bruker opsjonen -u
(bruker).
sudo pkill -KILL -u eric
Du returnerer til ledeteksten. For å forsikre oss om at noe har skjedd, sjekker vi igjen med who
:
who
Sesjonen hans er borte. Han er logget av og prosessene hans er stoppet. Dette har tatt brodden av situasjonen. Nå kan vi roe litt ned og fortsette med resten av oppryddingsarbeidet mens sikkerhetsvaktene tar turen bort til Erics kontor.
Arkivering av Brukerens Hjemmekatalog
Det er ikke usannsynlig at brukerens filer kan bli nødvendig i fremtiden. Enten det er del av en granskning, eller at hans etterfølger trenger tilgang til tidligere arbeid. Vi bruker tar
kommandoen for å arkivere hele hjemmekatalogen.
Opsjonene vi bruker er:
c
: Oppretter en arkivfil.f
: Angir navnet på arkivfilen.j
: Bruker bzip2 komprimering.v
: Gir detaljert utdata under oppretting av arkivet.
sudo tar cfjv eric-20200820.tar.bz /home/eric
Mange linjer med utskrift vil vises i terminalvinduet. For å verifisere at arkivet er opprettet, bruk ls
kommandoen. Vi bruker opsjonene -l
(langt format) og -h
(menneskelesbart format).
ls -lh eric-20200802.tar.bz
En fil på 722 MB er opprettet. Denne kan nå kopieres til en sikker lagringsplass for eventuell gjennomgang senere.
Fjerne Cron-Jobber
Vi bør sjekke om det er satt opp noen planlagte cron-jobber for brukerkontoen «eric». En cron-jobb er en kommando som utføres på angitte tidspunkt eller med visse intervaller. Vi kan undersøke om det finnes noen cron-jobber for denne brukerkontoen ved å bruke ls
:
sudo ls -lh /var/spool/cron/crontabs/eric
Hvis noe eksisterer her, betyr det at det er cron-jobber planlagt for denne brukerkontoen. Vi kan slette disse med crontab
kommandoen. Opsjonen -r
(fjern) vil fjerne jobbene, og -u
(bruker) forteller crontab
hvilke jobber som skal fjernes.
sudo crontab -r -u eric
Jobbene fjernes uten noen tilbakemelding. Hvis Eric hadde mistanke om hva som var i ferd med å skje, kunne han ha planlagt en ondsinnet jobb. Dette er et viktig sikkerhetstiltak.
Fjerne Utskriftsjobber
Kanskje brukeren hadde noen utskriftsjobber i kø? For å være på den sikre siden fjerner vi utskriftskøen for alle jobber som tilhører brukerkontoen «eric». Kommandoen lprm
fjerner jobber fra utskriftskøen. Opsjonen -U
(brukernavn) lar deg fjerne jobber som eies av den spesifikke brukerkontoen:
lprm -U eric
Jobbene fjernes, og du returneres til kommandolinjen.
Slette Brukerkontoen
Vi har allerede sikkerhetskopiert filene fra /home/eric/
katalogen, så vi kan nå gå videre og slette brukerkontoen og /home/eric/
katalogen samtidig.
Kommandoen som skal brukes avhenger av hvilken Linux-distribusjon du bruker. For Debian-baserte Linux-distribusjoner er kommandoen deluser
, og for resten av Linux-verdenen er det userdel
.
På Ubuntu er faktisk begge kommandoene tilgjengelige. Jeg forventet nesten at den ene skulle være et alias til den andre, men det er separate binære filer.
type deluser
type userdel
Selv om begge er tilgjengelige, er det anbefalt å bruke deluser
på Debian-baserte distribusjoner:
«userdel er et lavnivåverktøy for å fjerne brukere. På Debian bør administratorer som regel bruke deluser(8)
i stedet.»
Dette er tydelig nok. Kommandoen som skal brukes på denne Ubuntu-maskinen er derfor deluser
. Siden vi også ønsker å fjerne hjemmekatalogen, bruker vi flagget --remove-home
:
sudo deluser --remove-home eric
Kommandoen som skal brukes for ikke-Debian-distribusjoner er userdel
, med flagget --remove
:
sudo userdel --remove eric
Alle spor etter brukerkontoen «eric» er nå slettet. Vi kan sjekke at /home/eric/
katalogen er fjernet:
ls /home
Eric-gruppen er også fjernet fordi brukerkontoen «eric» var den eneste oppføringen i den. Dette kan vi enkelt verifisere ved å sende innholdet i /etc/group
gjennom grep
:
sudo less /etc/group | grep eric
Oppsummering
Eric er borte. Sikkerheten følger han ut av bygningen, og du har allerede sikret og arkivert hans filer, slettet kontoen hans og renset systemet for alle spor.
Nøyaktighet bør alltid prioriteres over hastighet. Vurder hvert trinn nøye før du gjennomfører det. Det siste du ønsker er at noen kommer til kontoret ditt og sier «Nei, det var den andre Eric».