
使用過 Linux 系統的同學都知道,Windows 系統跟 Linux 系統是有很大差別的,就拿本篇文章即將要說的查看系統用戶來說,在 Windows 系統中查看用戶直接滑鼠右擊電腦屬性,然后會有用戶和用戶組,而 Linux 是純命令列的,怎么查找用戶呢?這就是本文需要說明的,
看過之前文章的朋友都是知道有專門說過 useradd 這個命令,這個命令就是專門新建用戶的,當我們使用 useradd 這個命令新建用戶之后,/etc/passwd 就會存有這個用戶的相關資訊,并且還有 /etc/shadow 這個檔案會存放用戶密碼相關的資訊,

可以看到,這兩個檔案都是存放有用戶資訊的,但是除了用戶資訊之外還有一些其他的內容,如果我們只想了解用戶名該怎么處理,那么這就需要用到組合命令了,如下:
$ cat /etc/passwd | head -5 | cut -f1 -d:

在上面的示例中, head 這個命令就是提取 /etc/passwd 檔案的前五行內容,| 這個符號我們把它叫做管道符,它的作用就是將前一個命令的輸出作為后一個命令的輸入,這樣就很好理解上面的命令為什么只顯示前五行,之后我們又用了 cut 這個命令,這個命令的作用就是截取的意思,-d 選項指定分隔符,這里以 : 作為分割,-f 指定列,也就是以冒號為分隔符,截取第一列的內容,這一長串命令結合起來,就拿到了當前系統中所有已經創建的用戶名,
我們作為 Linux 系統管理員,可能很多時候都需要查看當前系統中的活動用戶,甚至有時候需要知道這些用戶在做什么,以下四種方法分享給大家:
1. w
是的,這是一個字母但同時也是一個命令,w 這個命令的作用就是顯示當前已經登錄到系統中的用戶的名稱,以及目前有的操作,
$ w
07:16:05 up 3 days, 19:00, 2 users, load average: 0.01, 0.08, 0.08
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 123.139.156.117 Thu22 0.00s 0.27s 0.00s w
root pts/1 123.139.156.117 21:29 8:23m 0.02s 0.02s -bash
w 這個命令輸出的資訊都是來自 /var/run/utmp 這個檔案的,該命令的輸出資訊可以看到有很多列,分別是:
USER:表示用戶的名稱
TTY:表示計算機終端設備
FROM:表示遠程主機的地址
LOGIN@:系統登陸的時間
IDLE:登陸系統的空閑時間
WHAT:表示用戶正在使用的命令
2. who
這個命令從名字就可以看出來它的作用,即列印當前登錄的用戶,
$ who
root pts/0 2020-11-26 22:12 (123.139.156.117)
root pts/1 2020-11-27 21:29 (123.139.156.117)
who 命令的輸出分別為:登錄的用戶名、設備號、登錄的時間日期以及主機地址,同樣的,如果指向查看用戶列,那么:
$ who | cut -d' ' -f1
root
root
有了開頭的相關介紹,相信這個組合命令大家也很好理解,
3. whoami
這個命令是不是看起來更直接,它的作用就是列印出當前正在登錄系統的用戶,只會顯示用戶名,沒有任何多余的輸出,
$ whoami
root

4. last
這個命令就比較厲害了,它可以列印出曾經登陸或使用系統的用戶資訊,如果不指定引數,默認會顯示所有登錄的歷史資訊,一般這些資訊所顯示的內容都來自 /var/log/wtmp 這個檔案,
[user5@VM-4-10-centos ~]$ last
root pts/1 123.139.156.117 Fri Nov 27 21:29 still logged in
root pts/0 123.139.156.117 Thu Nov 26 22:12 still logged in
reboot system boot 4.14.105-19-0016 Tue Nov 24 12:15 - 07:45 (3+19:29)
root pts/0 111.206.145.26 Thu Sep 24 18:11 - 18:11 (00:00)
root pts/0 111.206.145.26 Thu Sep 24 18:09 - 18:10 (00:01)
reboot system boot 4.14.105-19-0016 Thu Sep 24 18:07 - 18:25 (00:18)
reboot system boot 4.14.105-19-0016 Thu Sep 24 18:06 - 18:25 (00:19)
root pts/0 111.206.145.26 Thu Sep 24 17:13 - crash (00:52)
可以看到,這個資訊的輸出還是蠻多列的,不用每一列都進行關注,可以將重點放到第一列登錄的用戶上,還有遠程的地址以及登陸時間,還有最后兩列分別是登出的日期時間跟總共的一個作業時間,還有當前狀態的顯示,就比如我開了兩個終端且都是使用 root 用戶在登錄,因此在一直沒有登出的情況就會題示 "still logged in" 的狀態,
本篇文章主要以查看 Linux 系統的用戶為重點進行展開說明,Linux 系統一般都是用作服務器的,上面運行著比較重要的業務,一定保證其安全可靠,所以定期查看以下當前用戶登錄以及操作的情況是很有必要的,
本文由博客一文多發平臺 OpenWrite 發布!
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/249275.html
標籤:Linux
