miten näet, mitä käyttäjät tekevät Linuxissa
jos hallitset Linux-palvelinta, on hyvä olla valmiina komentojen kanssa, joita voit käyttää käyttäjän toiminnan tarkistamiseen – kun käyttäjät kirjautuvat sisään ja kuinka usein, mihin ryhmiin he kuuluvat, kuinka paljon levytilaa he kuluttavat, mitä komentoa he käyttävät, kuinka paljon levytilaa he miehittävät, jos he lukevat sähköpostiaan ja paljon muuta.
tässä viestissä tarkastelemme useita komentoja, joiden avulla voit ymmärtää, kuka käyttäjäsi on ja miten ne toimivat.
sormi
yksi kätevä komento käyttäjäprofiilin saamiseksi on sormi. Sen avulla voit nähdä, kuka on kirjautunut sisään tai keskittyä yhden käyttäjän tarkastella heidän viimeinen kirjautuminen, mistä he Kirjautunut sisään, kuinka kauan he ovat olleet tyhjäkäynnillä (kuinka kauan he ajoivat komento), jne. Tässä komennossa, tarkastelemme käyttäjä 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.
näemme Nemon koko nimen, kotihakemiston ja komentotulkin. Näemme myös Nemon viimeisimmän kirjautumis-ja sähköpostitoiminnan. Toimisto -, toimisto-ja kotipuhelinnumerot ovat mukana vain, jos ne on määritelty /etc/passwd-tiedostossa koko nimi-kentässä. Esimerkiksi:
nemo:x:1001:1001:Nemo Demo,11,540-222-2222,540-333-3333:/home/nemo:/bin/bash).
yllä oleva tuotos osoittaa myös, että nemolla ei ole ”suunnitelmaa”, mutta tämä tarkoittaa vain sitä, että hän ei ole luonut a: ta .plan tiedosto ja laittaa tekstiä siihen; tämä ei ole lainkaan epätavallista.
ilman argumentteja finger näyttää luettelon nykyisistä kirjautumisista alla olevassa muodossa. Näet, milloin he ovat kirjautuneet sisään, IP-osoitteen he kirjautuneet sisään, pseudo terminaali käytössä (esim.pts/1) ja kuinka kauan he ovat olleet käyttämättöminä.
$ 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-komento tarjoaa myös hienosti muotoillun listan tällä hetkellä aktiivisista käyttäjistä sisältäen joutoajan ja minkä komennon he viimeksi suorittivat. Se näyttää myös ylärivillä, kuinka kauan järjestelmä on ollut ylhäällä, ja tarjoaa kuormituskeskiarvoja, jotka osoittavat, kuinka kiireinen järjestelmä on. Tässä tapauksessa (0.00 viimeiset 1, 5 ja 15 minuuttia), järjestelmä on suurelta osin tyhjäkäynnillä.
$ 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
id-komennolla voi tarkastella käyttäjän numerotunnusta ja ryhmätunnusta sekä sitä, mihin ryhmiin käyttäjä kuuluu. Nämä tiedot poimitaan / etc /passwd-ja/etc / group-tiedostoista. Ilman argumentteja, id raportoi tiedot tilillesi.
$ 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.log
voit kiskaista tietoja osoitteesta / var/log / auth.lokitiedosto komennoilla kuten grep. Näyttää viimeisimmän kirjautumistapahtuman käyttämällä auth: ta.lokitiedot, voit suorittaa tällaisen komennon:
$ 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.
viimeinen
viimeinen komento on luultavasti paras kaikkien käyttäjien tai yhden yksittäisen henkilön viimeaikaisten kirjautumisten tarkasteluun. Vain muistaa, että viimeinen näyttää viimeisin toiminta ensin, koska tämä on tietoa, että useimmat ylläpitäjät ovat eniten kiinnostuneita.
$ 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-komento ilmoittaa, kuinka paljon tilaa käyttäjän kotihakemisto käyttää, jos se ajetaan kutakin hakemistoa /home vastaan näin:
$ sudo du -sk /home/*289 /home/dorothy116 /home/dory88 /home/eel28 /home/gino28 /home/jadep12764 /home/nemo732 /home/shark418046 /home/shs108 /home/tadpole
oletusarvoisesti koot ilmoitetaan 1024 tavun yksiköinä.
ps ja historia
tällä hetkellä kirjautuneille käyttäjille voit aina käyttää komentoja kuten ps-ef | grep ^Nemo nähdäksesi, mitä komentoja ja prosesseja käyttäjä on parhaillaan käynnissä. Aiemmin ajettujen komentojen tarkastelua voi kokeilla tutkimalla käyttäjien historiatiedostoja (esim.,.bash_history), mutta huomaa, että käyttäjät voivat perustaa tilinsä niin, että tiettyjä komentoja ei tallenneta historiatiedostoihin, ja he voivat myös muokata näitä tiedostoja halutessaan.
kirjautumisten laskeminen
jos haluat nähdä, kuinka monta kertaa kukin käyttäjistäsi on kirjautunut sisään sen jälkeen, kun / var / log / wtmp-tiedosto on viimeksi vieritetty, voit käyttää tällaista komentoa:
$ for USER in `ls /home`> do> cnt=`last $USER | grep ^$USER | wc -l` # count logins> echo $USER: $cnt # show login count> done
ulostulo näyttää jokseenkin tältä:
dorothy: 0dory: 0eel: 8gino: 0jadep: 102nemo: 39shark: 50shs: 105tadpole: 0
jos haluat enemmän yksityiskohtia, voit koota monimutkaisemman komentosarjan, joka voi lisätä joitakin lisätietoja, kuten kirjautumistiedot ja muotoilu.
#!/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
yllä oleva kirjoitus rajoittaa näytetyt tiedot viiteen viimeisimpään kirjautumiseen, mutta voit helposti muuttaa sitä, jos haluat. Näin yhden käyttäjän tiedot muotoiltaisiin:
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)
tarkistetaan sudo-yrityksiä
jos haluat nähdä, yrittääkö joku käyttäjistäsi käyttää sudoa, kun heillä ei ole tätä oikeutta, voit suorittaa komennon näin:
$ grep "NOT in sudoers" /var/log/auth.log | awk '{print }'nemo
jos olet joskus yrittänyt käyttää sudoa tilanteessa, jossa sinulla ei ole valtuuksia nostaa oikeuksiasi ja järjestelmä uhkasi sinua ”käyttäjätunnus ei ole sudoers-tiedostossa. Tämä tapaus raportoidaan, ” saatat nauttia tietäen, että tämä loki merkintä on ydin, että raportti. Ellei admin yrittää etsiä sudo rikkomuksia, ne jäävät huomaamatta.
Wrap-up
Linux-järjestelmissä on paljon komentoja, joiden avulla voi tarkistaa käyttäjän aktiivisuutta. Toivon, että osa tässä viestissä esitetyistä toimista osoittautuu hyödyllisiksi.