Hvordan se hva brukerne driver Med I Linux
Hvis Du administrerer En Linux-server, er det godt å være klar med en rekke kommandoer som du kan bruke til å sjekke brukeraktivitet – når brukerne logger inn og hvor ofte, hvilke grupper de tilhører, hvor mye diskplass de bruker, hvilken kommando de kjører, hvor mye diskplass de opptar, hvis de leser e-posten og mer.
I dette innlegget ser vi på en rekke kommandoer som kan hjelpe deg å forstå hvem brukeren din er og hvordan de fungerer.
finger
en praktisk kommando for å få en brukerprofil er finger. Den lar deg se hvem som er logget inn eller fokusere på en enkelt bruker for å vise sin siste innlogging, hvor de logget inn fra, hvor lenge de har vært inaktiv (hvor lenge siden de kjørte en kommando), etc. I denne kommandoen ser vi på brukeren nemo.
$ finger nemoLogin: nemo Name: Nemo DemoDirectory: /home/nemo Shell: /bin/bashOn since Fri Jun 19 12:58 (EDT) on pts/1 from 192.168.0.6 7 minutes 47 seconds idleNew mail received Wed Jun 17 18:31 2020 (EDT) Unread since Sat Jun 13 18:03 2020 (EDT)No Plan.
vi kan se nemos fulle navn, hjemmekatalog og skall. Vi kan også se nemos nyeste påloggings-og e-postaktivitet. Kontor -, kontortelefon-og hjemmetelefonnumre er bare inkludert hvis de er definert i/etc / passwd-filen i feltet fullt navn. For eksempel:
nemo:x:1001:1001:Nemo Demo,11,540-222-2222,540-333-3333:/home/nemo:/bin/bash).
utgangen ovenfor indikerer også at nemo ikke har en» plan», men dette betyr bare at han ikke har opprettet en .planlegg filen og legg litt tekst inn i den; dette er ikke uvanlig.
uten argumenter vil finger vise en liste over gjeldende pålogginger i formatet som vises nedenfor. Du kan se NÅR DE logget inn, IP-adressen de logget inn fra, pseudoterminalen i bruk (f.eks. pts/1) og hvor lenge DE har vært inaktiv.
$ fingerLogin Name Tty Idle Login Time Office Office Phonenemo Nemo Demo pts/1 1:24 Jun 19 12:58 (192.168.0.6)shs Sandra Henry-Stocker pts/0 Jun 19 12:57 (192.168.0.60
w
w-kommandoen gir også en pent formatert liste over aktive brukere, inkludert ledig tid og hvilken kommando de sist kjørte. Den viser også i topplinjen hvor lenge systemet har vært oppe og gir last gjennomsnitt som angir hvor opptatt systemet er. I dette tilfellet (0,00 for siste 1, 5 og 15 minutter) er systemet stort sett inaktiv.
$ w 14:23:19 up 1 day, 20:24, 2 users, load average: 0.00, 0.00, 0.00USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATshs pts/0 192.168.0.6 12:57 0.00s 0.14s 0.01s wnemo pts/1 192.168.0.6 12:58 1:24m 0.03s 0.03s -bash
id
med id-kommandoen kan du vise en brukers numeriske ID og gruppe-ID sammen med hvilke grupper brukeren er medlem av. Denne informasjonen er hentet fra/etc /passwd og/etc / group filer. Uten argumenter rapporterer id informasjonen for kontoen din.
$ iduid=1000(shs) gid=1000(shs) groups=1000(shs),4(adm),11(admin),24(cdrom),27(sudo),30(dip),46(plugdev),118(lpadmin),128(sambashare),500(devops)$ id nemouid=1001(nemo) gid=1001(nemo) groups=1001(nemo),16(fish)
auth.logg
du kan trekke informasjon fra /var / log / auth.loggfil med kommandoer som grep. For å vise den nyeste påloggingsaktiviteten ved hjelp av auth.loggdata, du kan kjøre en kommando som denne:
$ grep "New session" /var/log/auth.log | awk '{print ,,,}' | tail -5Jun 17 17:22:38 shs.Jun 17 17:58:43 gdm.Jun 17 18:09:58 shs.Jun 19 12:57:36 shs.Jun 19 12:58:44 nemo.
siste
den siste kommandoen er trolig den beste for å se på nylige pålogginger for alle brukere eller ett individ. Bare husk at siste viser den siste aktiviteten først siden dette er informasjonen som de fleste administratorer er mest interessert i.
$ last | head -5nemo pts/1 192.168.0.6 Fri Jun 19 12:58 still logged inshs pts/0 192.168.0.6 Fri Jun 19 12:57 still logged inshs pts/0 192.168.0.6 Wed Jun 17 18:10 - 18:42 (00:32)reboot system boot 5.4.0-37-generic Wed Jun 17 17:58 still runningshs pts/2 192.168.0.6 Wed Jun 17 17:22 - 17:57 (00:34)$ last nemo | head -5
nemo pts/1 192.168.0.6 Fri Jun 19 12:58 - 16:21 (03:22)
nemo pts/2 192.168.0.6 Sat Jun 13 17:49 - 19:05 (01:16)
nemo pts/1 192.168.0.6 Thu Jun 4 17:33 - 17:44 (00:10)
nemo pts/1 192.168.0.19 Mon May 11 19:04 - 19:57 (00:52)
nemo pts/1 192.168.0.19 Tue May 5 12:46 - 17:49 (05:02)
du
du-kommandoen vil rapportere hvor mye plass hver brukers hjemmekatalog bruker hvis den kjøres mot hver katalog i /hjem som dette:
$ sudo du -sk /home/*289 /home/dorothy116 /home/dory88 /home/eel28 /home/gino28 /home/jadep12764 /home/nemo732 /home/shark418046 /home/shs108 /home/tadpole
som standard rapporteres størrelsene i enheter på 1024 byte.
ps og historikk
for innloggede brukere kan du alltid bruke kommandoer som ps-ef / grep ^nemo for å se hvilke kommandoer og prosesser en bruker kjører. For å vise kommandoer som tidligere ble kjørt, kan du prøve å se på brukernes historikkfiler (f. eks.bash_history), men merk at brukere kan sette opp sine kontoer slik at visse kommandoer ikke er fanget i sine historikkfiler, og de kan også redigere disse filene hvis de ønsker det.
telle pålogginger
hvis du vil se hvor mange ganger hver av brukerne dine har logget inn siden /var / log / wtmp-filen sist rullet over, kan du bruke en kommando som denne:
$ for USER in `ls /home`> do> cnt=`last $USER | grep ^$USER | wc -l` # count logins> echo $USER: $cnt # show login count> done
utgangen vil se slik ut:
dorothy: 0dory: 0eel: 8gino: 0jadep: 102nemo: 39shark: 50shs: 105tadpole: 0
hvis du vil ha mer detaljer, kan du sette sammen et mer komplekst skript som kan legge til litt tilleggsinformasjon som innloggingsdetaljer og formatering.
#!/bin/bashsepline="===================="for USER in `ls /home`do len=`echo $USER | awk '{print length()}'` # get length of username echo $USER sep="${sepline:1:$len}" # set separator echo $sep # print separator cnt=`last $USER | grep ^$USER | wc -l` # count logins echo logins: $cnt # show login count last $USER | grep ^$USER | head -5 # show most recent logins echodone
skriptet ovenfor begrenser dataene som vises til de siste fem påloggingene, men du kan enkelt endre det hvis du vil. Slik blir dataene for en bruker formatert:
shs===logins: 105shs pts/0 192.168.0.6 Fri Jun 19 12:57 still logged inshs pts/0 192.168.0.6 Wed Jun 17 18:10 - 18:42 (00:32)shs pts/2 192.168.0.6 Wed Jun 17 17:22 - 17:57 (00:34)shs pts/0 192.168.0.25 Wed Jun 17 17:20 - 17:57 (00:36)shs pts/1 192.168.0.6 Wed Jun 17 15:19 - 17:57 (02:38)
se etter sudo-forsøk
Hvis du vil se om noen av brukerne dine prøver å bruke sudo når de ikke er konfigurert til å ha dette privilegiet, kan du kjøre en kommando som dette:
$ grep "NOT in sudoers" /var/log/auth.log | awk '{print }'nemo
hvis du noen gang har prøvd å bruke sudo i en situasjon der du ikke er autorisert til å heve dine privilegier og hadde systemet truer deg med » brukernavn er ikke i sudoers-filen. Denne hendelsen vil bli rapportert, » du kan nyte å vite at denne loggoppføringen er essensen av den rapporten. Med mindre admin gjør en innsats for å se etter sudo overtredelser, de vil gå ubemerket hen.
Wrap-up
Det er mange kommandoer På Linux-systemer som kan hjelpe deg med å sjekke brukeraktiviteten. Jeg håper at noen av de som presenteres i dette innlegget vil være nyttige.