3、使用者管理

7七柒發表於2024-06-28

使用者和組資訊的存放目錄

使用者基本資訊檔案

在路徑:/etc/passwd 的passwd檔案中

使用vim開啟passwd檔案,如下

檔案中透過 ":" 將使用者資訊分隔成了七個欄位,從左往右分別如下

  1. 使用者名稱:使用者起的名字,類似賬號名

  2. 密碼佔位符(x):具體內容在另一個檔案中。x去掉後可以在本地免密登入,遠端不行

  3. UID:使用者id,標識使用者身份

    id為0的使用者是root,也就是超級管理員

    1~499是系統使用者

    1000往後都是普通使用者

  4. GID:組號,使用者基本組

  5. 使用者描述:對使用者進行描述

  6. 家目錄:登入系統時所在的目錄

    管理員在/root

    普通使用者在/home

  7. 登入shell:命令直譯器。使用者登入之後所擁有的許可權

    • 使用者登陸 Linux 系統後,透過使用 Linux 命令完成操作任務,但系統只認識類似 0101 的機器語言,這裡就需要使用命令直譯器。也就是說,Shell 命令直譯器的功能就是將使用者輸入的命令轉換成系統可以識別的機器語言

    • 通常情況下,Linux 系統預設使用的命令直譯器是 bash(/bin/bash),當然還有其他命令直譯器,例如 sh、csh 等

    許可權等級:

    • base:/bin/bash。普通使用者的許可權
    • nologin:/sbin/nologin。不能登入

使用者密碼資訊檔案

在路徑:/etc/shadow 的shadow檔案中

使用vim開啟shadow檔案,如下

分為9個欄位,從左到右如下:

  1. 使用者名稱:與/etc/passwd檔案中的使用者名稱一致

  2. 加密密碼:使用者加密後的密碼,如果為空則不需要登入密碼

    所有偽使用者的密碼都是 "!!" 或 "*",代表沒有密碼是不能登入的。

    加密密碼的開頭的含義:

    • $6$ 開頭:使用SHA-512加密

    • $1$ 開頭:使用MD5加密

    • $2$ 開頭:使用Blowfish加密

    • $5$ 開頭:使用SHA-256加密

  3. 最後一次修改密碼的時間(單位:天):Linux將1970年1月1日作為第一天每過一天自增1,這與時間戳的計數方式十分相識,只不過時間戳是以秒為單位計數

  4. 密碼最小修改時間間隔(單位:天):使用者最後一次修改密碼後,單位時間內不能再次修改密碼。

    例如這裡的值是10,則代表密碼修改過後的十天內都不能再修改;值為0表示密碼可以隨時修改

  5. 密碼有效期(單位:天):密碼有效的最大時間,從最後一次修改密碼開始,必須在規定的單位時間內修改一次密碼,否則進不去系統。

    例如這裡的值為30,表示修改密碼後的30天內,要修改一次密碼。

    該欄位預設99999,也就是273年,基本表示密碼永久有效

  6. 密碼過期前的警告時間(單位:天):當使用者的密碼快到期時,系統根據該欄位的值警告使用者,再過一段時間你的密碼就到期了,儘快重置你的密碼

    該欄位預設值為7,表示在使用者密碼過期的前7天內,每次登入系統都會向該賬號發出儘快修改密碼的警告

  7. 密碼過期後距離賬號禁用的時間(單位:天):密碼過期後的寬恕時間,如果在這段時間內使用者還是不修改密碼,系統會直接禁用該賬號

  8. 賬號失效時間(單位:天):同第 3 個欄位一樣,使用自 1970 年 1 月 1 日以來的總天數作為賬戶的失效時間。該欄位表示,賬號在此欄位規定的時間之外,不論你的密碼是否過期,都將無法使用!

  9. 保留

基本組和擴充套件組

基本組和擴充套件組都是相對於使用者來說的

在建立使用者時,系統會幫我們建立一個與使用者名稱同名的組,這個組對於剛剛建立的使用者來說就是基本組

如果將該使用者加入到其他組中,那麼其他的組相對於這個使用者來說就是擴充套件組

組資訊檔案

在路徑:/etc/group 的group檔案中

使用vim開啟group檔案,如下

分為4個欄位,從左到右如下:

  1. 組名:在建立使用者時,會自動建立一個與使用者名稱同名的組

  2. 組密碼佔位符

  3. 組ID

  4. 組成員:預設為空

    將使用者放在組內,就可以給使用者授權

    一般來說一個組裡面的成員許可權是一樣的,但是root組除外,root組內的使用者叫普通管理員,但是root叫超級管理員

使用者和組的管理

管理使用者資訊

useradd:建立並設定使用者資訊

使用useradd命令可以自動完成使用者資訊、基本組、家目錄等的建立工作,並在建立過程中對使用者初始資訊進行定製。

格式:useradd 引數 使用者名稱

常用引數

引數 描述
-c 新增備註文字
-d 設定新使用者登入時所使用的家目錄
-D 設定新使用者的預設值
-e 設定使用者賬號失效的日期
-f 設定使用者過期幾日後永久停權
-g 設定使用者對應的基本使用者組
-G 設定使用者對應的擴充套件使用者組
-h 顯示幫助資訊
-k 設定使用者的骨架目錄
-l 不將使用者新增到最近登入和登入失敗資料庫檔案
-m 使用者目錄不存在時則自動建立
-M 不建立使用者家目錄
-n 不建立以使用者名稱稱為名的組
-o 允許建立重複UID的使用者
-p 設定使用者的密碼
-r 建立系統使用者
-R 設定根目錄
-s 設定新使用者的預設Shell終端
-u 設定使用者ID
-U 建立與使用者同名的組,並將其加入
-Z 設定使用者的SELinux對映角色

程序已結束,退出程式碼0

使用示例

  • 建立一user01的使用者

    [root@lyy etc]# useradd user01
    
  • 建立使用者:user02,並指定他的UID為:1500

    [root@lyy etc]# useradd -u 1500 user02
    
  • 建立使用者:user03,並將他分配到root組中

    [root@lyy etc]# useradd -G root user03
    
  • 建立使用者:user04,並指定他的過期時間為:2024/4/23

    [root@lyy etc]# useradd -e 2024/4/23 user04
    
  • 建立使用者:user05,但是不建立家目錄(即無法登入系統),

    [root@lyy etc]# useradd -M -s /sbin/nologin user05
    

id:檢視使用者與使用者組資訊

id命令的功能是顯示使用者與使用者組資訊。UID是使用者身份的唯一識別號碼,相當於我們的身份證號碼,而GID則是使用者組的唯一識別號碼。使用者僅有一個基本組,但可以有多個擴充套件組。

語法 :id 引數 使用者名稱

常用引數

引數 描述
-g 顯示使用者所屬基本組的ID(GID)
-G 顯示使用者所屬擴充套件組的ID(GID)
-n 顯示使用者所屬基本組或擴充套件組的名稱(需要與-g,-G,-u配合使用)
-u 顯示使用者的ID(UID)
-Z 顯示使用者的安全上下文
--help 顯示幫助資訊
--version 顯示版本資訊

使用示例

  • 顯示當前使用者的身份資訊

    [root@lyy etc]# id
    uid=0(root) gid=0(root) 組=0(root) 環境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
    
  • 顯示user01使用者所屬基本組的id

    [root@lyy etc]# id -g user01
    
  • 顯示使用者user01使用者所屬基本組的名稱(下面兩種都可以)

    [root@lyy etc]# id -n -g user01
    [root@lyy etc]# id -ng user01
    
  • 查詢使用者user01的基本資訊

    [root@lyy etc]# id user01
    uid=1001(user01) gid=1001(user01) 組=1001(user01)
    

passwd:修改使用者密碼資訊

password的縮寫,其功能是修改使用者的密碼值;同時也可以對使用者進行鎖定等操作

注意:需要管理員身份才可以執行。

格式:passwd 引數 使用者名稱

常用引數

引數 描述
-d 清除已有密碼
-e 下次登入時強制修改密碼
-f 強制執行操作而不詢問
-k 設定使用者在密碼過期後仍能正常使用
-l 鎖定使用者的密碼值,不允許修改
-n 設定密碼最小修改時間間隔
-S 顯示當前密碼狀態
-u 解鎖使用者的密碼值,允許修改
-w 設定密碼到期前幾天收到警告資訊
-x 設定密碼有效期
--help 顯示幫助資訊
--usage 顯示簡短的使用資訊提示

使用示例

  • 修改指定使用者:user01的密碼

    [root@lyy etc]# passwd user01
    更改使用者 user01 的密碼 。
    新的 密碼:
    重新輸入新的 密碼:
    passwd:所有的身份驗證令牌已經成功更新。
    
  • 鎖定使用者user01的密碼,不允許修改

    [root@lyy etc]# passwd -l user01
    鎖定使用者 user01 的密碼 。
    passwd: 操作成功
    
  • 解鎖使用者user01的密碼,允許修改

    [root@lyy etc]# passwd -u user01
    解鎖使用者 user01 的密碼。
    passwd: 操作成功
    
  • 檢視使用者user01的密碼資訊狀態

    [root@lyy etc]# passwd -S user01
    user01 PS 2024-04-21 0 99999 7 -1 (密碼已設定,使用 SHA512 演算法。)
    

usermod:修改使用者資訊

英文片語user modify的縮寫,其功能是修改使用者資訊中的各項引數。在建立使用者後如果發現資訊錯誤,可以不用刪除,而是用usermod命令直接修改使用者資訊,並且引數會立即生效。

語法:usermod 引數 使用者名稱

常用引數

引數 描述
-a 將使用者新增至擴充套件組中
-c 修改使用者的備註文字
-d 修改使用者登入時的家目錄
-e 修改使用者的有效期限
-f 設定在密碼過期多少天后關閉該使用者
-g 修改使用者所屬的基本群
-G 修改使用者所屬的擴充套件群
-l 修改使用者名稱稱
-L 鎖定使用者密碼,使密碼立即失效
-m 將使用者家目錄內容移動到新位置
-o 允許重複的使用者ID
-p 設定使用者的新密碼
-s 修改使用者登入後使用的Shell終端
-u 修改使用者的ID
-U 解除密碼鎖定,使密碼恢復正常
-Z 設定使用者的SELinux對映使用者

使用示例

  • 修改使用者:user01的shell為noloing,不允許登入

    [root@lyy ~]# usermod -s /sbin/nologin user01
    
  • 修改使用者:user01的使用者名稱為user0111

    [root@lyy ~]# usermod -l user0111 user01
    
  • 修改使用者:user01登入時的家目錄

    [root@lyy ~]# usermod -d /home user01
    

userdel:刪除使用者

片語user delete的縮寫,其功能是刪除使用者資訊。

在Linux系統中,一切都是檔案,使用者資訊被儲存到了/etc/passwd、/etc/shadow以及/etc/group檔案中,因此使用userdel命令實際上就是刪除指定使用者在上述3個檔案中的對應資訊。

注意:刪除使用者時最後使用-r引數,否則會有使用者的殘留資訊

語法:userdel 引數 使用者名稱

常用引數

引數 描述
-f 強制刪除使用者而不詢問
-h 顯示幫助資訊
-r 刪除使用者的家目錄及其內全部子檔案
-Z 刪除使用者的SELinux對映使用者

使用示例

  • 刪除使用者user01

    [root@lyy ~]# userdel user01			// 刪除使用者user01
    [root@lyy ~]# ls /home					// 沒有使用-r引數,使用者的家目錄還在
    liu  user01  user02  user03  user04
    [root@lyy ~]# id user01					// 使用id命令檢視,使用者確實被刪除了
    id: user01: no such user
    
  • 刪除使用者的家目錄

    [root@lyy ~]# userdel -r user02
    

管理組資訊

groupadd:建立新的使用者組

每個使用者在建立時都有一個與其同名的基本組,後期可以使用groupadd命令建立出新的使用者組資訊,讓多個使用者加入指定的擴充套件組,從而為後續的工作提供了良好的文件共享環境。

語法:groupadd 引數 使用者組

常用引數

引數 描述
-f 若使用者組已存在,則以成功狀態退出
-g 設定使用者組ID
-h 顯示幫助資訊
-K 覆蓋配置檔案/etc/login.defs
-o 允許建立重複ID的使用者組
-p 設定使用者組密碼
-r 建立系統使用者組

使用示例

  • 建立一個新的使用者組:word_group

    [root@lyy ~]# groupadd word_group
    
  • 建立新的使用者組:group01,並將組id設定為:1500

    [root@lyy ~]# groupadd -g 1500 group01
    
  • 建立系統使用者組:r_group

    [root@lyy ~]# groupadd -r r_group
    

groupdel:刪除使用者組

片語“delete a group”的縮寫,其功能是用於刪除使用者組。Linux系統中的使用者組資訊被儲存在/ect/group和/ect/gshadow檔案中,手動刪除對應資訊即可,亦可以用groupdel命令刪除。

語法:groupdel [引數] 群組名

常用引數

引數 描述
-f 強制刪除而不詢問
-h 顯示幫助資訊

使用示例

  • 強制刪除指定的使用者組

    [root@lyy ~]# groupdel -f group01
    

gpasswd:管理組內的使用者

片語group password的縮寫,其功能是設定管理使用者組。使用者可以使用gpasswd命令對使用者組進行充分的管理,例如設定/刪除密碼、新增/刪除組成員、設定組管理員/普通成員等,提高日常工作中對使用者組的管理效率。

語法:gpasswd 引數 使用者組名

常用引數

引數 描述
-a 新增使用者到指定組
-A 設定管理員
-d 從組中刪除使用者
-M 設定組成員
-r 刪除組密碼
-R 限制使用者登入組

使用示例

  • 將使用者:liu新增到使用者組:root中

    [root@lyy ~]# gpasswd -a liu root
    
  • 將使用者:liu從使用者組:root中刪除

    [root@lyy ~]# gpasswd -d liu root
    
  • 修改root組的密碼

    [root@lyy ~]# gpasswd root
    正在修改 root 組的密碼
    新密碼:
    請重新輸入新密碼:
    
  • 刪除root組的密碼

    [root@lyy ~]# gpasswd -r root
    

groupmod:修改使用者組資訊

片語“group modify”的縮寫,其功能是用於更改群組屬性。

Linux系統中的群組資訊一般不建議更改,因為涉及已加入使用者的歸屬問題,尤其是群組名稱、組GID,一定要確認好後再操作。

語法:groupmod 引數 群組名

常用引數

引數 描述
-g 設定群組識別碼
-n 設定群組名稱
-p 設定群組密碼
-h 顯示幫助資訊
-o 允許重複使用群組識別碼

使用grep命令檢視指定的使用者資訊和組資訊

檢視使用者:root的資訊

[root@lyy ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash

檢視root組資訊

[root@lyy ~]# grep root /etc/group
root:x:0:

監控使用者登入

whoami:顯示當前使用者名稱

”Who am i“的拼寫,中文譯為”我是誰“,其功能是用於顯示當前使用者名稱。whoami命令執行後會輸出當前登入的使用者身份名稱,相當於執行了”id -un“命令。

使用示例

[root@lyy ~]# whoami
root

who:檢視當前登入使用者資訊(簡略)

who命令的功能是用於顯示當前登入使用者資訊,包含登入的使用者名稱、終端、日期時間、程序等資訊,幫助運維人員瞭解當前系統的登入使用者情況。

語法格式:who [引數]

常用引數

引數 描述
-a 顯示全部資訊
-b 顯示系統最近啟動時間
-H 顯示使用者名稱、終端和時間
-l 顯示系統登入程序
-p 顯示由init生成的程序
-r 顯示當前執行級別
-s 靜默執行模式
-t 顯示系統上次鎖定時間
-u 顯示已登入使用者列表
--help 顯示幫助資訊
--version 顯示版本資訊

使用示例

  • 檢視當前登入使用者資訊

    [root@lyy ~]# who
    root     pts/0        2024-04-24 05:22 (192.168.10.1)
    
  • 檢視當前使用者資訊,並顯示標題

    [root@lyy ~]# who -H
    名稱      線路          時間              備註
    root     pts/0        2024-04-24 05:22 (192.168.10.1)
    
  • 顯示當前登入使用者的全部資訊

    [root@localhost ~]# who -H -a
    NAME       LINE         TIME             IDLE          PID COMMENT  EXIT
               system boot  2024-04-24 00:01
               run-level 5  2024-04-24 00:01
    root     ? :0           2024-04-24 00:01   ?          2182 (:0)
    root     + pts/0        2024-04-24 00:01   .          2782 (:0)
    

w:顯示已登入使用者的資訊

“who”的縮寫,其功能是用於顯示已登入使用者的資訊。運維人員只需要在命令終端中敲下w鍵並回車,即可檢視到當前系統中已登入的使用者列表和他們正在執行的命令等資訊,更好地瞭解系統正在執行的工作,以及等同事都下班了再重啟或關閉伺服器,避免突然中斷他人工作。

語法格式:w [引數]

常用引數

引數 描述
-f 顯示使用者登入來源
-h 不顯示頭資訊
-i 顯示IP地址而不是主機名
-l 顯示執行過程詳細資訊
-o 使用老式輸出格式
-s 使用短輸出格式
-u 忽略指定使用者名稱
-V 顯示版本資訊
--help 顯示幫助資訊

使用示例

  • 顯示目前登入系統使用者的資訊(預設格式)

    [root@lyy ~]# w
     08:07:58 up  2:46,  1 user,  load average: 0.00, 0.01, 0.04
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0    192.168.10.1     05:22    6.00s  0.23s  0.00s w
    
  • 顯示登入來源

    [root@lyy ~]# w -f
     08:08:51 up  2:46,  1 user,  load average: 0.00, 0.01, 0.04
    USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0     05:22    3.00s  0.24s  0.00s w -f
    
  • 不顯示頭資訊

    [root@lyy ~]# w -hf
    root     pts/0     05:22    7.00s  0.24s  0.00s w -hf
    
    [root@lyy ~]# w -h
    root     pts/0    192.168.10.1     05:22    1.00s  0.24s  0.00s w -h
    

頭資訊

  • USER:登入的使用者名稱
  • TTY:登入後系統分配的終端號
  • FROM:遠端主機名,即從哪兒登入來的
  • LOGIN@:何時登入
  • IDLE:空閒了多長時間,表示使用者閒置的時間。這是一個計時器,一旦使用者執行任何操作,該計時器便會被重置
  • JCPU:和該終端(tty)連線的所有程序佔用的時間,這個時間裡並不包括過去的後臺作業時間,但卻包括當前正在執行的後臺作業所佔用的時間
  • PCPU:指當前程序(即在WHAT項中顯示的程序)所佔用的時間
  • WHAT:當前正在執行程序的命令列

last:顯示使用者歷史登入情況

last命令的功能是顯示使用者歷史登入情況。透過檢視系統記錄的日誌檔案內容,可使管理員獲知誰曾經或者試圖連線過伺服器。 透過讀取系統登入歷史日誌檔案(/var/log/wtmp)並按照使用者名稱、登入終端、來源終端、時間等資訊進行劃分,可讓使用者對系統歷史登入情況一目瞭然。

語法格式:last 引數 物件

常用引數

引數 描述
-a 將來源終端資訊項放到最後
-d 將IP地址解析成域名或主機名
-f 設定記錄檔案
-F 顯示完整的登入時間和日期
-h 顯示幫助資訊
-i 顯示指定IP的登入情況
-n 設定顯示行數
-R 不顯示主機名欄位
-s 顯示指定時間以後的行
-t 顯示指定時間之前的行
-x 顯示系統開關機資訊
-V 顯示版本資訊

使用示例

  • 顯示近期使用者或終端的歷史登入情況
[root@lyy ~]# last
root     pts/0        192.168.10.1     Wed Apr 24 05:22   still logged in   
reboot   system boot  3.10.0-1160.el7. Wed Apr 24 05:21 - 08:14  (02:52)    
root     pts/0        192.168.10.1     Tue Apr 23 06:54 - down   (02:30)    
root     :0           :0               Tue Apr 23 06:54 - down   (02:30)    
reboot   system boot  3.10.0-1160.el7. Tue Apr 23 06:54 - 09:25  (02:30)    
root     pts/0        192.168.10.1     Sun Apr 21 11:04 - 00:00  (12:55)    
root     pts/0        192.168.10.1     Sun Apr 21 02:29 - 05:33  (03:03)    
root     :0           :0               Sun Apr 21 02:29 - down   (21:31)
  

wtmp begins Wed Apr 17 03:46:52 2024
  • 顯示最近三條歷史登入資訊,且不顯示來源終端

    [root@lyy ~]# last -n 3 -R
    root     pts/0        Wed Apr 24 05:22   still logged in   
    reboot   system boot  Wed Apr 24 05:21 - 08:18  (02:56)    
    root     pts/0        Tue Apr 23 06:54 - down   (02:30)    
    
    wtmp begins Wed Apr 17 03:46:52 2024
    
  • [root@lyy ~]# w -h
    root     pts/0    192.168.10.1     05:22    1.00s  0.24s  0.00s w -h
    [root@lyy ~]# last
    root     pts/0        192.168.10.1     Wed Apr 24 05:22   still logged in   
    reboot   system boot  3.10.0-1160.el7. Wed Apr 24 05:21 - 08:14  (02:52)    
    root     pts/0        192.168.10.1     Tue Apr 23 06:54 - down   (02:30)    
    root     :0           :0               Tue Apr 23 06:54 - down   (02:30)    
    reboot   system boot  3.10.0-1160.el7. Tue Apr 23 06:54 - 09:25  (02:30)    
    root     pts/0        192.168.10.1     Sun Apr 21 11:04 - 00:00  (12:55)    
    root     pts/0        192.168.10.1     Sun Apr 21 02:29 - 05:33  (03:03)    
    root     :0           :0               Sun Apr 21 02:29 - down   (21:31)    
    reboot   system boot  3.10.0-1160.el7. Sun Apr 21 02:29 - 00:00  (21:31)    
    root     pts/1        :0               Sun Apr 21 02:28 - 02:28  (00:00)    
    root     pts/1        :0               Sun Apr 21 00:49 - 00:50  (00:00)    
    root     pts/0        192.168.10.1     Sun Apr 21 00:48 - 02:28  (01:39)    
    root     :0           :0               Sun Apr 21 00:44 - down   (01:43)    
    reboot   system boot  3.10.0-1160.el7. Sun Apr 21 00:44 - 02:28  (01:44)    
    root     pts/1        :0               Fri Apr 19 21:03 - 21:25  (00:21)    
    root     pts/0        192.168.10.1     Fri Apr 19 20:42 - crash (1+04:01)   
    root     :0           :0               Fri Apr 19 20:25 - crash (1+04:18)   
    reboot   system boot  3.10.0-1160.el7. Fri Apr 19 20:25 - 02:28 (1+06:03)   
    root     pts/0        192.168.10.1     Fri Apr 19 05:47 - crash  (14:38)    
    root     pts/1        :0               Fri Apr 19 05:24 - 05:25  (00:00)    
    root     pts/1        :0               Fri Apr 19 01:25 - 01:25  (00:00)    
    root     pts/0        192.168.10.1     Thu Apr 18 22:51 - 05:46  (06:55)    
    root     :0           :0               Thu Apr 18 22:50 - crash  (21:34)    
    reboot   system boot  3.10.0-1160.el7. Thu Apr 18 22:50 - 02:28 (2+03:38)   
    root     pts/0        192.168.10.1     Thu Apr 18 09:14 - 15:00  (05:45)    
    root     :0           :0               Thu Apr 18 09:13 - down   (05:46)    
    reboot   system boot  3.10.0-1160.el7. Thu Apr 18 09:13 - 15:00  (05:47)    
    root     pts/0        192.168.10.1     Thu Apr 18 04:08 - down   (05:04)    
    root     pts/0        192.168.10.1     Thu Apr 18 03:51 - 03:59  (00:07)    
    root     pts/1        :0               Thu Apr 18 03:45 - 03:47  (00:01)    
    root     pts/0        192.168.10.1     Thu Apr 18 03:40 - 03:50  (00:09)    
    root     :0           :0               Thu Apr 18 03:39 - down   (05:32)    
    reboot   system boot  3.10.0-1160.el7. Thu Apr 18 03:39 - 09:12  (05:33)    
    root     :0           :0               Wed Apr 17 08:15 - crash  (19:24)    
    reboot   system boot  3.10.0-1160.el7. Wed Apr 17 08:14 - 09:12 (1+00:57)   
    root     pts/0        :1               Wed Apr 17 05:17 - 05:44  (00:26)    
    root     :1           :1               Wed Apr 17 05:14 - down   (00:29)    
    liu      pts/0        :0               Wed Apr 17 03:53 - 03:53  (00:00)    
    liu      pts/0        :0               Wed Apr 17 03:53 - 03:53  (00:00)    
    liu      :0           :0               Wed Apr 17 03:52 - down   (01:52)    
    reboot   system boot  3.10.0-1160.el7. Wed Apr 17 03:46 - 05:44  (01:57)    
    
    wtmp begins Wed Apr 17 03:46:52 2024
    

lastb:顯示登入失敗的使用者

lastb命令用於顯示使用者錯誤的登入列表,此指令可以發現系統的登入異常。

單獨執行lastb命令,它會讀取位於/var/log目錄下,名稱為btmp的檔案,並把該檔案內容記錄的登入失敗的使用者名稱單,全部顯示出來。

語法格式:lastb [引數]

常用引數

引數 描述
-a 把從何處登入系統的主機名稱或ip地址顯示在最後一行
-d 將IP地址轉換成主機名稱
-f 指定記錄檔案
-n 設定列出名單的顯示列數
-R 不顯示登入系統的主機名稱或IP地址
-x 顯示系統關機,重新開機,以及執行等級的改變等資訊

使用示例

  • 顯示所有登入失敗的使用者資訊

    [root@lyy ~]# lastb
    root     :0           :0               Wed Apr 24 08:22 - 08:22  (00:00)    
    root     :0           :0               Wed Apr 24 08:22 - 08:22  (00:00)    
    
    btmp begins Wed Apr 24 08:22:18 2024
    
  • 不顯示ip

    [root@lyy ~]# lastb -R
    root     :0           Wed Apr 24 08:22 - 08:22  (00:00)    
    root     :0           Wed Apr 24 08:22 - 08:22  (00:00)    
    
    btmp begins Wed Apr 24 08:22:18 2024
    

lastlog:顯示使用者最近一次登入資訊

lastlog檔案在每次有使用者登入時被查詢。可以使用lastlog命令檢查某特定使用者上次登入的時間,並格式化輸出上次登入日誌/var/log/lastlog的內容。它根據UID排序顯示登入名、埠號(tty)和上次登入時間。如果一個使用者從未登入過,lastlog顯示Never logged。注意需要以root身份執行該命令。

語法格式:lastlog [引數]

常用引數

引數 描述
-b <天數> 顯示指定天數前的登入資訊
-t <天數> 顯示指定天數以來的登入資訊
-u <使用者名稱> 顯示指定使用者的最近登入資訊
-h 顯示召集令的幫助資訊

使用示例

  • 顯示所有使用者最近一次登入資訊

    [root@lyy ~]# lastlog
    
  • 顯示7天來的登入資訊

    [root@lyy ~]# lastlog -t 7
    
  • 顯示指定使用者root的登入資訊

    [root@lyy ~]# lastlog -u root
    

su:切換使用者身份

使用:su命令可以切換使用者身份

switch user的縮寫,其功能是切換使用者身份。將管理員切換至任意使用者身份時無須密碼驗證,而將普通使用者切換至任意使用者身份時均需密碼驗證。另外,新增單個減號(-)參數列示完全的身份變更,不保留之前使用者的任何環境變數信‍息。

語法格式:su 引數 使用者名稱

常用引數

引數 描述
完全地切換身份
-c 執行完命令後,自動恢復原來的身份
-f 不讀取啟動檔案(適用於csh和tsch)
-l 切換身份時,同時變更工作目錄
-m 切換身份時,不變更環境變數
-s 設定要執行的Shell終端
--help 顯示幫助資訊
--version 顯示版本資訊

使用 示例

  • 從使用者root完全切換到使用者:liu

    [root@lyy ~]# su - liu
    上一次登入:三 4月 17 03:52:08 CST 2024:0 上
    

提權

sudo命令
當普通使用者要使用管理員才能使用的命令時,在命令前面加上sudo即可

相關文章