快速上手Linux核心命令(十一):Linux使用者相關命令

xiezhr發表於2023-05-07

前言

上一篇中已經預告,我們這篇主要說一說Linux中使用者相關的命令。
可能各位小夥伴用的Windows會比較多一點,在Windows作業系統中,我們知道有Administrator使用者,Administrator 是Windows系統中的管理員使用者,有著最高的許可權。
使用者登入Administrator後可以建立Gust等使用者,修改密碼並且給Gust使用者分配相應的許可權。
同樣的在Linux中,root就相當於Administrator使用者,具有著最高許可權。登入root 使用者可以建立使用者、修改使用者密碼、給使用者分配角色等等。
下面思維導圖中列出了我們需要掌握的19個命令
在這裡插入圖片描述

useradd 建立使用者

1、簡介

useradd 命令使用者建立新的使用者或者更改使用者資訊

2、原理
在這裡插入圖片描述

3、語法格式

useradd [引數選項] [使用者名稱]
或
useradd -D [引數選項]

4、引數說明
① 不加選項-D引數

引數選項 引數說明
-c comment 加上備註資訊,會儲存到passwd備註欄中(第五列)
-d home_dir 新使用者每次登入時使用的家目錄
-e expire_date 使用者終止日期
-f inactive_days 使用者過期幾日後永久停權
-g initial_group 指定使用者對應的使用者組。使用者組必須是系統現在已存在的名詞
-G group,[...] 定義此使用者為多個不同組的成員。每個使用者組使用逗號(,)分割
-m 使用者目錄如不存在則自動建立
-M 不建立家目錄,優先於、etc/login.defs檔案設定。【建立虛擬使用者時一般不需要建立家目錄,部署應用服務時則需要建立虛擬使用者】
-n 預設情況下使用者的使用者組和使用者名稱稱是相同的。透過該引數,就不會生成與使用者名稱一樣的使用者組了
-s shell 使用者登入後使用的Shell名稱。預設不填寫,系統會使用配置檔案(/etc/default/useradd)中的預設值
-u uid 使用者ID值。這個值是唯一的

② 加-D選項引數

引數選項 引數說明
-b defalut_home 定義使用者家目錄的基本目錄,當使用者家目錄不存在時,此目錄將作為家目錄生效
-e defalut_expire_date 使用者賬號停止日期
-f defalut_inactive 使用者過期幾日後停權
-g defalut_group 新使用者起始使用者組名或ID。使用者組名必須為現已存在的名稱
-s default_shell 使用者登入後使用Shell名稱

5、實踐操作
① 不加任何引數新增使用者

# 建立xiezhrspace 使用者
[root@xiezhr ~]# useradd xiezhrspace
# /home/ 路徑下新生成一個xiezhrspace 目錄。這個就是xiezhrspace使用者的家目錄
[root@xiezhr ~]# ls -ld /home/xiezhrspace
drwx------ 2 xiezhrspace xiezhrspace 4096 Aug 29 23:05 /home/xiezhrspace

在前面我們說過建立一個新使用者會在/etc/shadow、/etc/group 和/etc/gshsdow 檔案中生成相關資訊,具體是不是這樣的呢?
我們去看一看(●'◡'●)

# 在建立使用者時候沒有指定密碼,但是shadow還是生成了一行資訊
[root@xiezhr ~]# grep -w xiezhrspace /etc/shadow
xiezhrspace:!!:19233:0:99999:7:::

# 建立使用者時,預設會建立與使用者名稱同名的使用者組
[root@xiezhr ~]# grep -w xiezhrspace /etc/group
xiezhrspace:x:1002:

#組密碼檔案中也會增加一條資訊
[root@xiezhr ~]# grep -w xiezhrspace /etc/gshadow
xiezhrspace:!::

② 建立一個組,並將新建使用者歸於這個組

# 建立一個gid 為808 的使用者組
[root@xiezhr ~]# groupadd -g 808 xiezhrgroup
# 建立一個uid為908的使用者xietest,並將使用者歸於xiezhrgroup組
[root@xiezhr ~]# useradd -g xiezhrgroup -u 908 xietest
# 檢視使用者資訊
[root@xiezhr ~]# id xietest
uid=908(xietest) gid=808(xiezhrgroup) groups=808(xiezhrgroup)

③ -M -s引數的使用(在生產環境中部署Nginx、MySQL等服務經常使用

# -M 不建立見目錄
# -s 指定登入後的Shell
# /sbin/nologin  表示禁止登陸
[root@xiezhr ~]# useradd -M -s /sbin/nologin xiaofang
[root@xiezhr ~]# ls -ld /home/xiaofang
ls: cannot access /home/xiaofang: No such file or directory
[root@xiezhr ~]# grep -w xiaofang /etc/passwd
xiaofang:x:1003:1003::/home/xiaofang:/sbin/nologin

/etc/passwd 檔案說明

xiaofang x 1003 1003 /home/xiaofang /sbin/nologin
使用者名稱稱 賬號密碼 賬號UID 賬號組GID 使用者說明 使用者家目錄 shell直譯器

usermod 修改使用者資訊

1、簡介

usermod 命令用於修改系統已經存在的使用者賬號資訊

2、語法格式

usermod [引數選項] [使用者名稱]

3、引數選項

引數 引數說明
-c comment 修改使用者password檔案中使用者的說明欄,與useradd -c 功能相同
-d home_dir 修改使用者的家目錄 與useradd -d 功能相同
-e expire_date 修改使用者終止日期 與useradd -e 功能相同
-f inactive_days 修改使用者過期後幾日永久停權 與useradd -f 功能相同
-g initial_group 修改使用者對應的使用者組 與useradd -g 功能相同
-G group,[......] 修改此使用者為多個不同組的成員 與useradd -G功能相同
-m 使用者目錄如果不存在則自動建立
-M 不建立使用者家目錄。一般建立虛擬使用者時不建立家目錄。不是nginx、redis等服務是需要建立虛擬使用者
-n 預設情況下,使用者的使用者組與使用者的名稱相同
-s shell 修改使用者登入後使用的Shell名稱 與useradd -s 功能相同
-u uid 修改使用者的ID值 與useradd -u 功能相同
-a 追加使用者到使用者組 僅與-G引數連用
-l 修改使用者賬號名稱
-L 鎖定使用者密碼,不讓使用者改密碼
-U 解除密碼鎖定

4、實踐操作
將前面建立的xiezhr 使用者的使用者註釋修改為“測試使用者”,UID 修改為888,歸屬修改為使用者組root、xiezhr 成員,其Shell型別為/sbin/nologin,設定家目錄為/home/xiezhr 使用者過期時間為2022-10-02 ,過期後15天停權

[root@xiezhr ~]# usermod -u 888 -s /sbin/nologin -c "測試使用者" -G root -e "2022/10/02" -f 30 -d /home/xiezhr xiezhr
[root@xiezhr ~]# grep -w xiezhr /etc/passwd
xiezhr:x:888:1001:測試使用者:/home/xiezhr:/sbin/nologin
[root@xiezhr ~]# id xiezhr
uid=888(xiezhr) gid=1001(xiezhr) groups=1001(xiezhr),0(root)
[root@xiezhr ~]# grep -w xiezhr /etc/shadow
xiezhr:!!:19233:0:99999:7:30:19267:
[root@xiezhr ~]# chage -l xiezhr
Last password change                                    : Aug 29, 2022
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : Oct 02, 2022
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7

userdel 刪除使用者

1、簡介

userdel 命令使用者刪除指定的使用者及與該使用者相關的檔案

2、語法格式

userdel [參屬選項] [使用者名稱]

3、引數選項

引數 引數說明
-f 強制刪除使用者,即使使用者當前登入
-r 刪除使用者的同時,刪除與使用者相關的所有檔案

4、實踐操作
① 不加引數刪除使用者

[root@xiezhr home]# tail -4 /etc/passwd
xiezhr:x:888:1001:測試使用者:/home/xiezhr:/sbin/nologin
xiezhrspace:x:1002:1002::/home/xiezhrspace:/bin/bash
xietest:x:908:808::/home/xietest:/bin/bash
xiaofang:x:1003:1003::/home/xiaofang:/sbin/nologin
[root@xiezhr home]# ll /home/xietest/ -ld
drwx------ 2 xietest xiezhrgroup 4096 Aug 29 23:16 /home/xietest/
[root@xiezhr home]# userdel xietest 
[root@xiezhr home]# grep -w xietest /etc/passwd
[root@xiezhr home]# ll /home/xietest/ -ld
drwx------ 2 908 xiezhrgroup 4096 Aug 29 23:16 /home/xietest/

② 加 -r 引數刪除使用者及加目錄

[root@xiezhr home]# ls -ld /home/xiezhr001/
drwx------ 2 xiezhr001 xiezhr001 4096 Sep  4 19:50 /home/xiezhr001/
[root@xiezhr home]# grep -w xiezhr001 /etc/passwd
xiezhr001:x:1005:1005::/home/xiezhr001:/bin/bash
[root@xiezhr home]# userdel -r xiezhr001 
[root@xiezhr home]# grep -w xiezhr001 /etc/passwd
[root@xiezhr home]# ls -ld /home/xiezhr001/
ls: cannot access /home/xiezhr001/: No such file or directory

注意

  • 在實際工作中,儘量不要使用userdel刪除使用者,只需要在/etc/passwd裡註釋使用者就可以了。
  • 在使用-r引數一定要慎重,-r引數會將家目錄下所有檔案和目錄都刪除,該過程是不可逆的

groupadd 建立新的使用者組

1、簡介

groupadd 用於建立新的使用者組。實際工作中一般也不用,因為useradd命令在建立使用者的時候也會建立一個同名的使用者組

2、語法格式

groupadd [引數選項] [使用者組]

3、引數選項

引數 引數說明
-g gid 指定使用者組的gid,除非接-o引數,否則ID值唯一且不為負,如果不指定-g引數,則gid從500開始
-f 新增一個賬戶,強制覆蓋一個已存在的組賬號

4、實踐操作
指定gid新增使用者組

# 新增GID為123的test1使用者組
[root@xiezhr ~]# groupadd -g 123 test
[root@xiezhr ~]# tail -l /etc/group
test:x:123:
[root@xiezhr ~]# tail -l /etc/gshadow
test:!::

groupdel 刪除使用者組

1、簡介

groupdel 命令使用者刪除指定的使用者組,一般不用

2、語法格式

groupdel [使用者組]

3、實踐操作
刪除test使用者組

[root@xiezhr ~]# groupdel test 
[root@xiezhr ~]# grep -w test /etc/group

passwd 修改使用者密碼

1、簡介

passwd 命令用於修改使用者密碼及密碼過期使勁啊等,工作中會經常用到。
普通使用者和超級使用者都可以執行passwd命令,普通使用者只能更改自身密碼,超級使用者root則可以設定或修改所有使用者的密碼

2、語法格式

passwd [引數選項] [使用者名稱]

3、引數選項

引數 引數說明
-k 為密碼已經過期的使用者更新有效期
-l 鎖定使用者,被鎖定的使用者不能登入。僅root使用者有此許可權
--stdin 從標準輸入讀取密碼字串
-u 解除對使用者的鎖定,僅root使用者有此許可權
-d 刪除使用者密碼,使密碼為空。僅root使用者有此許可權
-e 是使用者密碼立即過期,將使用者下次登入時強制要求使用者修改密碼。僅root使用者有此許可權
-n 設定修改該密碼的最短天數 。僅root使用者有此許可權
-x 設定修改密碼的最長天數。僅root使用者有此許可權
-w 設定使用者在密碼過期前收到警告資訊的天數。僅root使用者有此許可權
-i 設定密碼過期多少天后禁用賬戶。僅root使用者有此許可權
-S 顯示使用者密碼相關的簡單描述。僅root使用者有此許可權

4、實踐操作
① 修改使用者自身密碼

[root@xiezhr ~]# passwd                # 修改root使用者自身密碼
Changing password for user root.      
New password:                          # 輸入修改的密碼,系統不會顯示
Retype new password:                   # 再次輸入密碼
passwd: all authentication tokens updated successfully.       # 設定成功了

② 設定及修改普通使用者密碼

[root@xiezhr ~]# passwd xiezhr
Changing password for user xiezhr.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.

③ 顯示賬號密碼資訊

[root@xiezhr ~]# passwd -S xiezhr
xiezhr PS 2022-09-05 0 99999 7 30 (Password set, MD5 crypt.)

④一條命令修改密碼

[root@xiezhr ~]# echo "123456"|passwd --stdin xiezhr
Changing password for user xiezhr.
passwd: all authentication tokens updated successfully.

⑤ 設定xiezhr使用者7天內不能更改密碼,60天以後必須修改密碼,過期10天通知使用者,過期30天后禁止使用者登入

[root@xiezhr ~]# passwd -n 7 -x 60 -w 10 -i 30 xiezhr
Adjusting aging data for user xiezhr.
passwd: Success

chage 修改使用者密碼有效期

1、簡介

chage 命令用於檢視或修改使用者密碼有效期

2、語法格式

chage [引數選項] [使用者名稱]

3 、引數選項

引數 引數說明
-d 設定上一次密碼更改的日期
-E 賬號過期的日期。日期格式:YYYY-MM-DD
-I 設定密碼過期多少天后禁用賬戶
-l 顯示賬號有效期資訊
-m 密碼可更改的最小天數。預設為0,即任何時候都可以修改
-M 密碼保持有效的最大天數
-W 密碼到期前,提前收到警告資訊天數
4、實踐操作
設定xiezhr使用者7天內不能更改密碼,60天以後必須修改密碼,過期10天通知xiezhr 使用者,過期30天后禁止使用者登入
[root@xiezhr ~]# chage -m 7 -M 60 -W 10 -I 30 xiezhr

批次更新使用者密碼

1、簡介

chpasswd 命令用於從標準輸入中讀取一定格式的使用者名稱、密碼來批次更新使用者的密碼,格式為“使用者名稱:密碼“

2、語法格式

chpasswd [引數選項]

3、引數選項

引數 引數說明
-c 預設格式是明文密碼,使用-e引數則需要加密的密碼
4、實踐操作
批次修改密碼
[root@xiezhr ~]# chpasswd   # 輸入chpasswd後,回車
xiezhr:123456               # 格式為使用者名稱:密碼
testxiezhr:123456           # 一行一個
	                        # 新行按Ctrl+D 結束

su 切換使用者

1、簡介

su 命令使用者將當前使用者切換到指定使用者或以指定使用者的身份執行命令或程式

2、語法格式

su [引數選項] [使用者名稱]

3、引數選項

引數 引數說明
-, -l, --login 切換使用者的同時,將使用者的家目錄/系統環境等重新按切換後的使用者初始化
-c 向Shell 傳遞單個命令

4、實踐操作
① 切換到普通使用者

# 切換到testxiezhr使用者,不用輸入密碼即可切換
[root@xiezhr ~]# su - testxiezhr

②切換到root使用者

# 雖然已經切換到了root使用者,但是家目錄還是testxiezhr。環境變數還是testxiezhr使用者的,**這種切換問題很嚴重**
[testxiezhr@xiezhr ~]$ su root
Password:                          # 普通使用者切換到root使用者需要輸入密碼
[root@xiezhr testxiezhr]# pwd
/home/testxiezhr
# 正確切換方式
[root@xiezhr testxiezhr]# exit
exit
[testxiezhr@xiezhr ~]$ su - root
Password:                                               # 需要輸入密碼
Last login: Mon Sep  5 21:13:39 CST 2022 on pts/3
[root@xiezhr ~]# pwd
/root

注意:
[x] "su 使用者名稱" 雖然能切換到對應使用者,但切換後的環境變數資訊還是切換之前使用者的
[√] ** ”su - 使用者名稱“ 不但可以切換到對應使用者,還能將環境變數一起切換**

visudo 編輯sudoers檔案

1、簡介

visudo命令是專門用來編輯 /etc/sudoers這個檔案的,同時提供語法檢查等功能。 /etc/sudoers檔案是sudo命令的配置檔案。sudo命令在下一個命令你會看到。而為什麼不用vi/vim來直接編輯/etc/sudoers檔案呢? 因為如果使用vim 編輯sudoer檔案時沒有語法校驗,編輯錯了會導致授權無法生效

2、語法格式

visudo [引數選項]

3、引數選項

引數 引數說明
-c 手動執行語法檢查

4、實踐操作
①將xiezhr使用者提權為root身份,testxiezhr 使用者具有新增和刪除使用者的許可權

# 以下命令相當於 vim /etc/sudoers    進行編輯sudoers檔案
[root@xiezhr ~]# visudo

#在/etc/sudoers 檔案中新增如下許可權
xiezhr ALL=(ALL)        ALL                                     # 此行時將xiezhr使用者提權為root身份
testxiezhr ALL=(ALL)     /usr/sbin/useradd, /usr/sbin/userdel   # 授予可以以root身份新增和刪除使用者許可權

上面操作說明

待授權的使用者或組 機器=(授權角色) 可以執行的命令
testxiezhr ALL=(ALL) /usr/sbin/useradd,/usr/sbin/userdel

② 透過-c引數校驗語法是否正確
透過① 我們已經對xiezhr使用者和testxiezhr使用者做了不同的授權,那麼怎麼判斷授權的語法是否正確呢

[root@xiezhr ~]# visudo -c
/etc/sudoers: parsed OK
/etc/sudoers.d/90-cloud-init-users: parsed OK

直接root使用者下操作不就可以了麼?為什麼要透過sudo授權呢?
我們希望一個使用者具有root許可權去幹活,但是又不希望這個使用者威脅系統安全。

sudo 以另一個使用者身份執行命令

1、簡介

sudo 命令可以讓普通使用者擁有超級使用者的許可權去執行指定的命令或程式。普通使用者不需要知道root密碼就可以得到授權,授權我們在上面已經說過

2、語法格式

sudo [引數選項]

3、引數選項

引數 引數說明
-l 列出當前使用者可以執行的命令。只有在sudoers 檔案裡的使用者才能使用該選項
-h 列出使用方法,並退出
-H 將環境變數中的HOME(家目錄)指定為要變更身份的使用者家目錄
-V 顯示版本資訊,並退出
-v sudo在第一次執行時,或者在N分鐘內沒有執行,則會詢問密碼,引數用於重新做一次確認
-u 以指定使用者的身份執行命令
-k 清除時間戳上的實踐,下次再次使用sudo時要再此輸入密碼
-K 與k類似,同時還刪除時間戳檔案
-b 在後臺執行指定命令
-p 更改詢問密碼時的提示語
-e 不執行命令,而是修改檔案,相當於sudo edit

4、sudo 工作原理
sudo工作原理

5、實踐操作
建立一個testuser 使用者,並對testuser進行sudo授權管理。授權完成後sudo操作

# 1、建立testuser 使用者
[root@xiezhr ~]# useradd testuser
# 2、將testuser 使用者密碼修改為******
[root@xiezhr ~]# passwd testuser
Changing password for user testuser.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
# 3、執行以下命令後新增 `testuser ALL=(ALL)        ALL  ` 對testuser使用者進行sudo授權 參照下圖
[root@xiezhr ~]# visudo
testuser ALL=(ALL)        ALL
# 4、登入testuser 使用者,檢視 當前使用者被授予的sudo許可權集合
[testuser@xiezhr ~]$ sudo -l
Matching Defaults entries for testuser on xiezhr:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
    env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User testuser may run the following commands on xiezhr:
    (ALL) ALL

# 5、登入testuser使用者,執行ls /root 發現時沒有許可權的
[testuser@xiezhr ~]$ ls /root
ls: cannot open directory /root: Permission denied
# 6、當加上sudo 後 再執行ls /root (第一次需要輸入testuser使用者密碼,上面原理圖介紹過),發現可以訪問/root 路徑了,此時testuser 具有了
[testuser@xiezhr ~]$ sudo ls /root

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for testuser: 
bdcdb84c414c2493e5856597b89be9f0.gif

6、 sudo 小結

  • 對使用者進行sudo授權後,所有使用者執行命令 格式為 sudo + [命令]
  • sudo - l 命令可以檢視當前使用者被授予的sudo許可權集合
  • 當我們在授權使用者下執行sudo時,如果需要輸入密碼。此時輸入密碼是當前使用者的密碼

id 顯示使用者與使用者組資訊

1、簡介

id 命令可以顯示指定使用者的ID(UID)和組ID(GID)等有效資訊

2、語法格式

id [引數選項] [使用者名稱]

3、引數選項

引數 引數說明
-g 顯示使用者所屬群組的ID
-G 顯示使用者所屬附加群組的ID
-n 顯示使用者,所屬群組或附加群組的名稱
-r 顯示實際ID
-u 顯示使用者ID

4、實踐操作
顯示使用者的UID和GID

# id 後不跟使用者,預設時當前登入使用者
[root@xiezhr home]# id
uid=0(root) gid=0(root) groups=0(root)
# 顯示指定使用者資訊
[root@xiezhr home]# id testxiezhr
uid=1006(testxiezhr) gid=1006(testxiezhr) groups=1006(testxiezhr)
# 顯示當前登入使用者名稱稱
[root@xiezhr home]# id -gn
root
# 顯示當前登入使用者GID
[root@xiezhr home]# id -g
0
# 顯示當前登入使用者UID
[root@xiezhr home]# id -u
0

w 顯示已登入使用者資訊

1、簡介

w命令可以顯示已經登入系統的使用者,並顯示使用者正在執行的命令

2、語法格式

w [引數選項] [使用者]

3、引數選項

引數 引數說明
-h 不顯示前兩行標題資訊
-u 忽略執行程式的名稱以及CPU時間資訊
-s 使用短輸出格式

4、實踐操作
① 顯示已登入使用者資訊

[testuser@xiezhr ~]$ w
 21:21:42 up 609 days, 7 min,  4 users,  load average: 2.66, 2.99, 3.17
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    39.130.60.62     20:33   48:22   0.02s  0.02s -bash
root     pts/1    39.130.60.62     20:55   13:10   0.07s  0.02s -bash
root     pts/2    39.130.60.62     21:04   16:54   0.02s  0.02s -bash
root     pts/3    39.130.60.62     21:21    6.00s  0.04s  0.00s w

w命令執行結果說明

  • 第一行依次顯示當前的系統時間、系統從啟動到現在已經執行的時間、登入到系統中的使用者數和系統平均負載
列名 含義
USER 登入系統的使用者
TTY 使用者使用的TTY名稱
FROM 使用者從哪裡登入進來,一般顯示遠端登入主機的IP地址或主機名
LOGIN@ 使用者登入的日期和時間
IDLE 顯示終端空閒的時間
JCPU 表示該終端上的所有程式及子程式使用系統的總時間
PCPU 當前活動程式使用的系統時間
WHAT 當前使用者執行的程式名稱和選項

② -h 引數

[root@xiezhr ~]# w -h
root     pts/0    39.130.60.62     20:33    1:04m  0.02s  0.02s -bash
root     pts/1    39.130.60.62     20:55   28:55   0.07s  0.02s -bash
root     pts/2    39.130.60.62     21:04   32:39   0.02s  0.02s -bash
root     pts/3    39.130.60.62     21:21   15:51   0.04s  0.02s -bash
root     pts/4    39.130.60.62     21:37    3.00s  0.02s  0.00s w -h

顯示已登入使用者資訊

1、簡介

who 命令用於顯示已經登入系統的使用者,以及系統的啟動時間等資訊

2、語法格式

who [引數選項]

3、引數選項

引數 引數說明
-a 顯示所有資訊
-b 顯示系統啟動時間
-d 顯示已結束的程式
-H 顯示標題,預設是不顯示的
-l 顯示登入程式

4、實踐操作
① 不帶引數顯示所有資訊

[root@xiezhr ~]# who
root     pts/0        2022-09-11 20:33 (39.130.60.62)
root     pts/1        2022-09-11 20:55 (39.130.60.62)
root     pts/2        2022-09-11 21:04 (39.130.60.62)
root     pts/3        2022-09-11 21:21 (39.130.60.62)
root     pts/4        2022-09-11 21:37 (39.130.60.62)
root     pts/5        2022-09-11 22:19 (39.130.60.62)

② 顯示系統啟動時間

[root@xiezhr ~]# who -b
         system boot  2021-01-10 21:14

③ 顯示已結束的程式

[root@xiezhr ~]# who -d

④ 顯示標題

[root@xiezhr ~]# who -H
NAME     LINE         TIME             COMMENT
root     pts/0        2022-09-11 20:33 (39.130.60.62)
root     pts/1        2022-09-11 20:55 (39.130.60.62)
root     pts/2        2022-09-11 21:04 (39.130.60.62)
root     pts/3        2022-09-11 21:21 (39.130.60.62)
root     pts/4        2022-09-11 21:37 (39.130.60.62)
root     pts/5        2022-09-11 22:19 (39.130.60.62)

⑤ 顯示帶標題的所有資訊

 [root@xiezhr ~]# who -H -a
NAME       LINE         TIME             IDLE          PID COMMENT  EXIT
           system boot  2021-01-10 21:14
           run-level 3  2021-01-10 21:14
LOGIN      ttyS0        2021-01-10 21:14              1009 id=tyS0
LOGIN      tty1         2021-01-10 21:14              1008 id=tty1
root     + pts/0        2022-09-11 20:33 01:50       23396 (39.130.60.62)
root     + pts/1        2022-09-11 20:55 01:15       27638 (39.130.60.62)
root     + pts/2        2022-09-11 21:04 01:19       29660 (39.130.60.62)
root     + pts/3        2022-09-11 21:21 01:02         405 (39.130.60.62)
root     + pts/4        2022-09-11 21:37 00:46        3587 (39.130.60.62)
root     + pts/5        2022-09-11 22:19   .         11675 (39.130.60.62)

以上顯示的各項含義

名稱 [狀態] 線路 時間 [活動] [程式標識] (主機名)

列名 說明
NAME 名稱: 使用者登入名
狀態:表示線路對使用者是否都是可寫的
LINE 線路: pts/0 pts/1等等
TIME 時間:使用者登入系統的時間
IDLE 活動:某使用者最後一次活動到現在的時間;. 表示一分鐘內線路活動
PID 程式表示:使用者程式id
COMMENT 主機名

users 顯示已登入使用者

1、簡介

users 命令用於顯示已經登入的使用者。一個使用者登入多次則會顯示多次

2、實踐操作

[root@xiezhr ~]# users
root root root root root root

whoami 顯示當前登入的使用者

1、簡介

whoami 命令用於顯示當前登入的使用者。是英文who am i 的簡寫

2、實踐操作

[root@xiezhr ~]# whoami
root
[root@xiezhr ~]# su - testuser
Last login: Sun Sep 11 21:21:40 CST 2022 on pts/3
[testuser@xiezhr ~]$ whoami
testuser

last 顯示使用者登入列表

1、簡介

last命令用於顯示最近登入的使用者列表

2、語法格式

last [引數選項]

3、引數選項

引數 引數說明
- num 指定顯示結果的行數

4、實踐操作
① 不加引數顯示

[root@xiezhr ~]# last
root     pts/6        39.130.60.62     Sun Sep 11 22:42   still logged in   
root     pts/0        39.130.60.62     Sun Sep 11 22:37   still logged in 
root     pts/1        39.130.60.29     Sun Nov 29 09:09 - down   (01:02)    
root     pts/0        39.130.60.29     Sun Nov 29 08:49 - down   (01:23)    
root     pts/0        112.112.17.172   Fri Nov  6 12:50 - 15:45  (02:55)    

wtmp begins Fri Nov  6 12:50:41 2020

② -num 引數,顯示指定顯示行數

[root@xiezhr ~]# last -5
root     pts/6        39.130.60.62     Sun Sep 11 22:42   still logged in   
root     pts/0        39.130.60.62     Sun Sep 11 22:37   still logged in   
root     pts/5        39.130.60.62     Sun Sep 11 22:19   still logged in   
root     pts/4        39.130.60.62     Sun Sep 11 21:37   still logged in   
root     pts/3        39.130.60.62     Sun Sep 11 21:21   still logged in   

wtmp begins Fri Nov  6 12:50:41 2020

lastb 顯示使用者登入失敗的記錄

1、簡介

lastb命令用於顯示使用者登入失敗的記錄

2、語法格式

lastb [引數選項]

3、引數說明

引數 引數說明
-num 指定顯示結果的行數
4、實踐操作
[root@xiezhr ~]# lastb -5
         ssh:notty    159.75.56.103    Sun Sep 11 21:18 - 21:18  (00:00)    
ltecl4r0 ssh:notty    45.141.84.126    Sun Sep 11 20:33 - 20:33  (00:00)    
ltecl4r0 ssh:notty    45.141.84.126    Sun Sep 11 20:33 - 20:33  (00:00)    
1admin0  ssh:notty    45.141.84.126    Sun Sep 11 20:32 - 20:32  (00:00)    
1admin0  ssh:notty    45.141.84.126    Sun Sep 11 20:32 - 20:32  (00:00)    

btmp begins Thu Sep  1 03:31:03 2022

lastlog 顯示所有使用者最近登入記錄

1、簡介

lastlog 命令用於顯示使用者最近登入的記錄,便於檢視系統是否異常

2、實踐操作

[root@xiezhr ~]# lastlog
Username         Port     From             Latest
root             pts/6                     Sun Sep 11 22:45:57 +0800 2022
bin                                        **Never logged in**
daemon                                     **Never logged in**
adm                                        **Never logged in**
lp                                         **Never logged in**
test                                       **Never logged in**
testxiezhr       pts/0                     Thu Sep  8 21:53:58 +0800 2022
testuser         pts/6                     Sun Sep 11 22:42:24 +0800 2022

注意:
當有從不登入的使用者突然登入系統了,就要考慮是不是有使用者入侵系統了

這期內容就到這,下期根據思維導圖就到Linux磁碟與檔案系統相關命令的使用了。
涉及到的命令有: fdisk、df、mount、dd、unmount、sync、等等
敬請期待哦(●’◡’●)

專欄目錄:快速上手Linux核心命令專欄目錄

上一篇:快速上手Linux核心命令(十一):Linux安裝軟體
下一篇:快速上手Linux核心命令(十二):磁碟與檔案系統相關命令(博主正在玩命更新中)

相關文章