您好,登錄后才能下訂單哦!
這篇文章主要介紹Linux下怎么查看用戶的行為,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
在 Linux 下查看用戶的行為,不僅僅是網管要做的事,也是開發人員所應該具備的基本技能之一。為什么呢?因為有時其他同事在做一些很消耗資源的事情,比如在編譯大型程序,可能會導致服務器變得很慢,從而影響我們的正常操作。這個時候,我們就可以通過本文所介紹的方法,揪出那個同事,將他暴打一頓,就可以恢復服務器的正常使用了。
我是誰?
「我是誰?我從哪里來?我要去哪里?」哲學經典三大問題。同樣,在工作中,有時候我們會經常進行賬號切換,有時切著都忘了切到哪個用戶了。這時,需要知道當前登錄的用戶是啥。我們可以用 whoami 來進行查看。
[alvin@VM_0_16_centos ~]$ whoami alvin
目前都有誰登錄到系統里?
一個公司里通常只有少數幾臺服務器,程序猿們一般都在這幾臺服務器里工作。我們可以用 who 命令來查看當前登錄到服務器的用戶有哪一些。
[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.***.***)
在顯示結果里,第一列是用戶名;第二列是連接的終端,tty 表示顯示器,pts 表示遠程連接;第三列是登陸時間。
這里信息稍微多一些,但如果我們只想知道誰在線要怎么操作?只需用 users 命令來查看即可。
[alvin@VM_0_16_centos ~]$ users alvin alvin alvin harry kate root
那些登錄到系統里的人都在干什么?
知道了誰登錄到系統里,我們就可以進一步調查他們在做什么。w 命令用于顯示已經登錄系統的用戶的名稱,以及他們正在做的事。該命令所使用的信息來源于/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 命令出來的結果一樣,依次表示:當前時間、系統運行時間、當前系統登錄用戶數、平均負載。
從第二行開始構成一個表格,共有8個欄目,分別顯示各個用戶正在做的事情及該用戶所占用的系統資源。
USER:顯示登陸用戶帳號名。用戶重復登陸,該帳號也會重復出現。
TTY:用戶登陸所用的終端。FROM:顯示用戶在何處登陸系統。
LOGIN@:是LOGIN AT的意思,表示登陸進入系統的時間。
IDLE:用戶空閑時間,從用戶上一次任務結束后,開始記時。
JCPU:一終端代號來區分,表示在某段時間內,所有與該終端相關的進程任務所耗費的CPU時間。
PCPU:指WHAT域的任務執行后耗費的CPU時間。
WHAT:表示當前執行的任務
如果說我們只想查看某個用戶當前的行為,我們可以直接在 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
如何知道當前與過去登錄系統的用戶的信息?
有些人比較狡猾,做了壞事拒不承認。但是,在 Linux 里,每個用戶的登錄信息都會記錄起來,這樣查找相關人員的責任就有所依據。
last命令可用于顯示特定用戶登錄系統的歷史記錄。如果沒有指定任何參數,則顯示所有用戶的歷史信息。在默認情況下,這些信息(所顯示的信息)將來源于/var/log/wtmp文件。該命令的輸出結果包含以下幾列信息:
用戶名稱
tty設備號
歷史登錄時間日期
登出時間日期
總工作時間
[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后跟上對應的用戶名即可:
[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
但這個命令相當危險,有可能導致系統重啟,所以不推薦使用這個命令。比較安全的做法是使用 pkill 命令。
[alvin@VM_0_16_centos ~]$ sudo pkill -kill -t pts/3 #harry用戶已經被踢除了 [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下怎么查看用戶的行為”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。