這篇文章主要介紹Linux下怎么查看用戶的行為,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:主機(jī)域名、虛擬主機(jī)、營銷軟件、網(wǎng)站建設(shè)、臨翔網(wǎng)站維護(hù)、網(wǎng)站推廣。
在 Linux 下查看用戶的行為,不僅僅是網(wǎng)管要做的事,也是開發(fā)人員所應(yīng)該具備的基本技能之一。為什么呢?因為有時其他同事在做一些很消耗資源的事情,比如在編譯大型程序,可能會導(dǎo)致服務(wù)器變得很慢,從而影響我們的正常操作。這個時候,我們就可以通過本文所介紹的方法,揪出那個同事,將他暴打一頓,就可以恢復(fù)服務(wù)器的正常使用了。
我是誰?
「我是誰?我從哪里來?我要去哪里?」哲學(xué)經(jīng)典三大問題。同樣,在工作中,有時候我們會經(jīng)常進(jìn)行賬號切換,有時切著都忘了切到哪個用戶了。這時,需要知道當(dāng)前登錄的用戶是啥。我們可以用 whoami 來進(jìn)行查看。
[alvin@VM_0_16_centos ~]$ whoami alvin
目前都有誰登錄到系統(tǒng)里?
一個公司里通常只有少數(shù)幾臺服務(wù)器,程序猿們一般都在這幾臺服務(wù)器里工作。我們可以用 who 命令來查看當(dāng)前登錄到服務(wù)器的用戶有哪一些。
[alvin@VM_0_16_centos ~]$ who alvin pts/0 2018-12-09 07:25 (116.199.***.***) root pts/1 2018-12-09 11:05 (116.199.***.***) alvin pts/2 2018-12-09 11:05 (116.199.***.***) harry pts/3 2018-12-09 11:06 (116.199.***.***) kate pts/4 2018-12-09 11:08 (116.199.***.***) alvin pts/5 2018-12-09 11:53 (116.199.***.***)
在顯示結(jié)果里,第一列是用戶名;第二列是連接的終端,tty 表示顯示器,pts 表示遠(yuǎn)程連接;第三列是登陸時間。
這里信息稍微多一些,但如果我們只想知道誰在線要怎么操作?只需用 users 命令來查看即可。
[alvin@VM_0_16_centos ~]$ users alvin alvin alvin harry kate root
那些登錄到系統(tǒng)里的人都在干什么?
知道了誰登錄到系統(tǒng)里,我們就可以進(jìn)一步調(diào)查他們在做什么。w 命令用于顯示已經(jīng)登錄系統(tǒng)的用戶的名稱,以及他們正在做的事。該命令所使用的信息來源于/var/run/utmp文件。
[alvin@VM_0_16_centos ~]$ w 16:25:54 up 29 days, 6:05, 6 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT alvin pts/0 116.199.***.** 07:25 2.00s 0.11s 0.00s w root pts/1 116.199.***.** 11:05 5:20m 0.02s 0.02s -bash alvin pts/2 116.199.***.** 11:05 5:20m 0.04s 0.05s sshd: alvin [priv] harry pts/3 116.199.***.** 11:06 4:33m 18.08s 18.06s watch date kate pts/4 116.199.***.** 11:08 4:33m 10.51s 10.48s top alvin pts/5 116.199.***.** 11:53 4:32m 0.02s 0.02s -bash
第一行其實與 uptime 命令出來的結(jié)果一樣,依次表示:當(dāng)前時間、系統(tǒng)運行時間、當(dāng)前系統(tǒng)登錄用戶數(shù)、平均負(fù)載。
從第二行開始構(gòu)成一個表格,共有8個欄目,分別顯示各個用戶正在做的事情及該用戶所占用的系統(tǒng)資源。
USER:顯示登陸用戶帳號名。用戶重復(fù)登陸,該帳號也會重復(fù)出現(xiàn)。
TTY:用戶登陸所用的終端。FROM:顯示用戶在何處登陸系統(tǒng)。
LOGIN@:是LOGIN AT的意思,表示登陸進(jìn)入系統(tǒng)的時間。
IDLE:用戶空閑時間,從用戶上一次任務(wù)結(jié)束后,開始記時。
JCPU:一終端代號來區(qū)分,表示在某段時間內(nèi),所有與該終端相關(guān)的進(jìn)程任務(wù)所耗費的CPU時間。
PCPU:指WHAT域的任務(wù)執(zhí)行后耗費的CPU時間。
WHAT:表示當(dāng)前執(zhí)行的任務(wù)
如果說我們只想查看某個用戶當(dāng)前的行為,我們可以直接在 w 后跟上該用戶名:
[alvin@VM_0_16_centos ~]$ w alvin 16:34:21 up 29 days, 6:14, 6 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT alvin pts/0 116.199.***.** 07:25 5.00s 0.12s 0.06s sshd: alvin [priv] alvin pts/2 116.199.***.** 11:05 5:28m 0.04s 0.05s sshd: alvin [priv] alvin pts/5 116.199.***.** 11:53 4:40m 0.02s 0.02s -bash
如何知道當(dāng)前與過去登錄系統(tǒng)的用戶的信息?
有些人比較狡猾,做了壞事拒不承認(rèn)。但是,在 Linux 里,每個用戶的登錄信息都會記錄起來,這樣查找相關(guān)人員的責(zé)任就有所依據(jù)。
last命令可用于顯示特定用戶登錄系統(tǒng)的歷史記錄。如果沒有指定任何參數(shù),則顯示所有用戶的歷史信息。在默認(rèn)情況下,這些信息(所顯示的信息)將來源于/var/log/wtmp文件。該命令的輸出結(jié)果包含以下幾列信息:
用戶名稱
tty設(shè)備號
歷史登錄時間日期
登出時間日期
總工作時間
[alvin@VM_0_16_centos ~]$ last alvin pts/5 116.199.***.** Sun Dec 9 11:53 still logged in kate pts/4 116.199.***.** Sun Dec 9 11:08 still logged in harry pts/3 116.199.***.** Sun Dec 9 11:06 still logged in alvin pts/2 116.199.***.** Sun Dec 9 11:05 still logged in root pts/1 116.199.***.** Sun Dec 9 11:05 still logged in alvin pts/0 116.199.***.** Sun Dec 9 07:25 still logged in alvin pts/0 116.199.***.** Sat Dec 8 20:42 - 23:10 (02:28) alvin pts/0 119.33.***.** Mon Dec 3 20:50 - 23:51 (1+03:01) alvin pts/0 119.33.***.** Thu Nov 29 20:20 - 22:45 (02:24) alvin pts/0 223.104.***.** Thu Nov 29 06:46 - 07:00 (00:14) alvin pts/0 223.104.***.** Wed Nov 28 20:45 - 22:27 (01:42) alvin pts/1 14.25.***.*** Sun Nov 25 19:50 - 21:09 (01:18) alvin pts/0 119.33.***.** Sun Nov 25 16:32 - 21:40 (05:07)
如果我們只想看某個人的歷史記錄,則在last后跟上對應(yīng)的用戶名即可:
[alvin@VM_0_16_centos ~]$ last alvin alvin pts/5 116.199.***.** Sun Dec 9 11:53 still logged in alvin pts/2 116.199.***.** Sun Dec 9 11:05 still logged in alvin pts/0 116.199.***.** Sun Dec 9 07:25 still logged in alvin pts/0 116.199.***.** Sat Dec 8 20:42 - 23:10 (02:28) alvin pts/0 119.33.***.** Mon Dec 3 20:50 - 23:51 (1+03:01) alvin pts/0 119.33.***.** Thu Nov 29 20:20 - 22:45 (02:24) alvin pts/0 223.104.***.** Thu Nov 29 06:46 - 07:00 (00:14) alvin pts/0 223.104.***.** Wed Nov 28 20:45 - 22:27 (01:42)
踢除使壞人員
通過以上幾個命令,我們可以大概知道某些用戶的行為。如果我們想要踢除使壞的人員,可以使用 pkill -u 命令。
pkill -u alvin
但這個命令相當(dāng)危險,有可能導(dǎo)致系統(tǒng)重啟,所以不推薦使用這個命令。比較安全的做法是使用 pkill 命令。
[alvin@VM_0_16_centos ~]$ sudo pkill -kill -t pts/3 #harry用戶已經(jīng)被踢除了 [alvin@VM_0_16_centos ~]$ w 17:04:37 up 29 days, 6:44, 5 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT alvin pts/0 116.199.102.65 07:25 5.00s 0.12s 0.00s w root pts/1 116.199.102.65 11:05 5:59m 0.02s 0.02s -bash alvin pts/2 116.199.102.65 11:05 5:59m 0.04s 0.05s sshd: alvin [priv] kate pts/4 116.199.102.65 11:08 5:12m 11.94s 11.91s top alvin pts/5 116.199.102.65 11:53 5:10m 0.02s 0.02s -bash
以上是“Linux下怎么查看用戶的行為”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!