Linux用戶管理-相關命令及配置文件-超詳細-概念詳解-初學全

前言

Linux系統作爲多用戶多任務的操作系統,可以在同一時間內允許多個用戶登錄、操作及配置計算機,隨着需求的增加,用戶的增加,我們也就需要對用戶進行管理,以至於更有效地開展項目,改善工作,更有效得滿足場景需要,提高效果、效率、效益。
下面我們就來了解一下Linux中如何對用戶進行管理操作。


一.用戶管理命令

通過系統中的命令對用戶進行相應的操作。在講解命令之前,我們需要了解,在linux操作系統中,以下的幾個概念

  • UID:用戶ID號,用戶的唯一標識號,就相當於一個人的身份證號。
  • 所屬用戶組:在linux操作系統中,一個用戶必須有它的用戶組,如果不給新用戶指定用戶組,那麼該會默認創建一個與用戶名相同的組。
  • GID:用戶組的ID號。
  • 家目錄:與Windows系統相同,可理解爲一個用戶的用戶文件夾,所有用戶的家目錄默認被創建在 /home 目錄下。相當於Windows操作系統中的 C:/Users 目錄。

1.1 創建用戶

通過 useradd 命令來創建新的用戶。

語法格式: useradd [參數] <用戶名>

常用參數:

參數 作用
-u 指定用戶UID
-d 指定用戶家目錄位置
-c 添加用戶說明/備註
-g 指定用戶初始所屬的用戶組
-G 指定用戶所屬附加組
-s 指定用戶登錄的shell解釋器

操作演示:

添加新用戶 xiaobei

[root@localhost ~]# useradd xiaobei

添加新用戶 test01 並且指定其家目錄爲 /test/test01

[root@localhost ~]# useradd -d /test/test01 test01

添加新用戶 test01 並且指定ID爲6666

[root@localhost ~]# useradd -u 6666 test01

添加新用戶 test01 並且指定其所屬組爲root,並設置其登錄shell爲nologin

[root@localhost ~]# useradd -g root -s /sbin/nologin test01

1.2 設置密碼

通過passwd命令來設置當前登錄用戶(自身)或者其他用戶的密碼。該命令如果不加用戶名,即代表對當前登錄的用戶進行操作。不加參數,代表設置密碼。

語法格式: passwd [參數] [用戶名]

常用參數:

參數 作用
-d 刪除密碼
-S 查詢用戶密碼的狀態
-l 鎖定用戶密碼
-u 解鎖用戶密碼

操作演示:

設置當前登錄用戶的密碼:

[root@localhost ~]# passwd

設置用戶xiaobei的密碼

[root@localhost ~]# passwd xiaobei

清除用戶 xiaobei 的密碼

[root@localhost ~]# passwd -d xiaobei

1.3 查看登錄用戶登錄

使用命令whow 命令可以查詢當前系統上已登錄用戶的相關信息。

語法格式: who [參數]

常用參數:

參數 作用
-a 打印全面信息
-b 打印系統最近引導時間
-H 帶有列名打印信息
-u 打印已登錄用戶列表

操作演示:
輸出當前已登錄的用戶信息(帶列名打印)

[root@localhost ~]# who -H
名稱      線路    時間              備註
root     pts/0  2020-12-30 16:16 (192.168.3.8)

註釋:線路列表中的 pts/0 ,pts代表遠程終端登錄,如果輸出了 tty1,則tty代表本地終端登錄。

語法格式: w [參數]

常用參數:

參數 作用
-h 不帶列名輸出
-s 使用短格式輸出

操作演示:
輸出當前已登錄用戶信息(帶列名輸出)

[root@localhost ~]# w
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.3.8      16:16    0.00s  0.46s  0.01s w

註釋:LOGIN@ 代表登錄時間,IDLE表示空閒時間,JCPU是與該終端連接的進程佔用的時間,PCPU 是用戶當前進程所佔用的時間。

1.4 修改用戶屬性

使用usermod命令,可以修改用戶相關屬性和信息。

語法格式: usermod [參數] <用戶名>

常用參數:

參數 作用
-u 修改用戶UID
-c 修改用戶的說明/備註
-g 修改用戶的所屬用戶組
-G 修改用戶的附加組
-L 鎖定用戶密碼
-U 解鎖用戶密碼
-s 修改用戶的登錄shell

操作演示:

設置用戶xiaobei的登錄shell爲nologin 使其無法登錄

[root@localhost ~]# usermod -s /sbin/nologin xiaobei

1.5 用戶密碼有效性

使用chage命令修改用戶和用戶密碼的有效期限,這個信息由系統用於確定用戶何時必須更改其密碼。

語法格式: chage [參數] [用戶名]

常用參數:

參數 作用
-M 密碼保持有效的最大天數
-W 用戶密碼到期前,提前收到警告信息的天數
-E 帳號到期的日期,會禁止此帳號
-d 上一次更改的日期
-l 顯示用戶的密碼相關信息

操作演示:

使用戶 xiaobei 的密碼有效期最大爲30天。

[root@localhost ~]# chage -M 30 xiaobei

1.6 刪除用戶

使用命令userdel刪除用戶。在刪除之前確定用戶沒有登錄。

語法格式: userdel [參數] [用戶名]

常用參數:

參數 作用
-f 強制刪除用戶賬號
-r 同時刪除用戶的家目錄

操作演示:
刪除用戶 test01 同時刪除該用戶的家目錄

[root@localhost ~]# userdel -r test01

1.7 切換登錄用戶

使用 su 命令切換當前登錄用戶。root 用戶切換普通用戶時不需要輸入密碼,反之需要。

語法格式: su [用戶名]

常用參數:

參數 作用
-c 僅執行一次命令,不切換用戶身份

操作演示:

切換到用戶 xiaobei

[root@localhost ~]# su xiaobei

切換到用戶 root 同時一起切換環境變量。

[xiaobei@localhost ~]$ su - root

用root用戶執行一條命令 useradd

[xiaobei@localhost ~]$ su - root -c "useradd test01"

1.8 退出登錄

使用命令 logout 退出登錄。遠程終端以及su命令登錄的用戶也可用 exit 退出。


二.用戶組管理命令

在前面我們提到過,在創建新用戶時,會同時創建一個與該用戶同名的用戶組。這是因爲Linux中的用戶,必須有一個所屬組,如果在創建用戶時指定一個所屬組,就不會創建與其同名的組了。下面我們只簡單介紹幾個組管理的命令。

2.1 添加用戶組

使用命令groupadd 添加用戶組。

語法格式: groupadd [參數] <組名>

常用參數:

參數 作用
-g 創建的同時制定用戶組ID

操作演示:

添加用戶組 userg 並指定id爲6666

[root@localhost ~]# groupadd -g 6666 userg

2.2 修改組屬性

使用命令groupmod 修改用戶組的信息。

語法格式: groupmod [參數] <組名>

常用參數:

參數 作用
-n 修改組名
-g 修改新的GUID

操作演示:

修改用戶組 userg 組名爲testgroup

[root@localhost ~]# groupmod testgroup userg

2.3 設置用戶組

使用命令gpasswd 來設置組和組內成員

語法格式: gpasswd <參數 > <組名>

常用參數:

參數 作用
-a 添加用戶到組
-d 從組刪除用戶

操作演示:

把用戶 xiaobei 添加到 group01 用戶組

[root@localhost ~]# gpasswd -a xiaobei group01

2.4 刪除用戶組

使用命令groupdel 來設置組和組內成員。如果組內有初始用戶,則不能刪除,如果組內有附加用戶,也可以刪除。

語法格式: groupdel [參數] <組名>

操作演示:

刪除用戶組 test01

[root@localhost ~]# groupdel test01

三.用戶管理相關的配置文件

以上所有的用戶管理、組管理命令,包括用戶的添加、刪除,密碼的修改,有效期設置等命令的操作,均會保存在配置文件中,也就是命令的操作也就是修改配置文件。換一種說法,例如我們要修改某用戶的密碼有效期,除了可以使用命令,還可以直接修改Linux中記錄用戶信息的配置文件。都可以達到同樣的效果。

3.1 用戶信息配置文件

通過命令進行創建、修改用戶以及相關操作,都是對配置文件/etc/passwd的修改。比如修改用戶家目錄,可以用命令 usermod 修改,也可以直接修改文件中的第六個字段。該文件除了記錄普通用戶的信息,也記錄了系統用戶的信息。切記,系統用戶的信息不要輕易更改,否則進行某相關操作時,會導致系統錯誤。
通過命令 less /etc/passwd 或者 vim /etc/passwd 可以查看以及修改該配置文件。

文件概覽:
在這裏插入圖片描述
字段對應信息:

1.用戶名稱:2.密碼標誌:3.UID:4.GID :5.用戶說明/備註:6.家目錄:7.登錄的shell

字段解釋:

密碼標誌 x 代表該用戶有密碼。
UID中 0 代表超級用戶,RedHat、CentOS系列的發行版中,1-499爲系統用戶(僞用戶),通過配置文件可以看到它們的shell解釋器都爲nologin也就是不登錄。500-65535爲普通用戶可用的UID。
用戶的附加組可以有多個。

3.2 用戶密碼信息配置文件

在Linux系統中/etc/shadow文件存放用戶密碼信息,又稱爲“影子文件”。由於存放了密碼信息,爲了保證安全性,該文件只有root用戶可以讀取。

文件概覽:
在這裏插入圖片描述
字段對應信息:

1.用戶名稱:2.加密密碼:3.密碼最後一次修改日期:4.兩次密碼的修改間隔:5.密碼有效期:6.有效期到期前的警告天數:7.寬限天數:8.賬號失效時間

字段解釋:

加密密碼採用了SHA512散列加密算法。如果該字段爲 !! 或 * 就代表該用戶不能登錄。
該文件所有的日期格式均採用時間戳。
兩次密碼的修改間隔爲天數,10 就代表修改過一次密碼後十天內不能再次修改。

unix時間戳是從1970年1月1日(UTC/GMT的午夜)開始所經過的秒數,不考慮閏秒。
Unix時間戳(英文爲Unix epoch, Unix time, POSIX time 或 Unix timestamp)
是從1970年1月1日(UTC/GMT的午夜)開始所經過的秒數,不考慮閏秒。
UNIX時間戳的0按照ISO 8601規範爲 :1970-01-01T00:00:00Z.
一個小時表示爲UNIX時間戳格式爲:3600秒;一天表示爲UNIX時間戳爲86400秒,閏秒不計算。
在大多數的UNIX系統中UNIX時間戳存儲爲32位,這樣會引發2038年問題或Y2038。
-------- 百度百科





第七字段寬限天數,代表用戶封禁前的緩衝天數,如果該值爲3,就代表有效期過三天後再進行用戶封禁。

3.3 創建用戶默認配置信息文件

在創建用戶時,我們可以手動指定家目錄。如果不指定,就會默認把家目錄放到/home目錄下。如果我想讓它默認創建到其他位置呢?我們就可以通過修改配置文件/etc/default/useradd文件來實現。

文件概覽:
在這裏插入圖片描述

字段解釋:

HOME字段控制創建用戶時默認的家目錄位置
INACTIVE爲密碼過期的寬限天數
SHELL創建用戶默認的登錄shell
SKEL爲家目錄的模板目錄
CREATE_MAIL_SPOOL是否建立郵箱
GROUP用戶的默認組
EXPIRE密碼失效時間





3.4 用戶限制設定配置文件

在配置文件/etc/login.defs中,記錄了用戶限制設定。該文件的作用是爲了對用戶更爲規範的管理,例如用戶默認的密碼有效期,就可以通過該文件進行修改,就是前面有講到的chage命令相關的,不過該文件修改的是用戶創建時的默認項,相當於一個模板文件。注意,該文件設置對用戶root不生效。

文件概覽:
在這裏插入圖片描述
部分字段解釋:
PASS_MAX_DAYS 默認密碼有效期
UID_MIN UID的最小值
PASS_MIN_DAYS 兩次密碼修改的間隔。





四.組管理相關的配置文件

與用戶管理相同,除了命令,也可以通過直接修改配置文件來達到對組的配置。

4.1 組信息配置文件

用戶組的配置文件位置爲/etc/group

文件概覽:
在這裏插入圖片描述

字段對應信息:

1.組名:2.組密碼標誌:3.GID:4.組中附加用戶

4.2 組密碼信息配置文件

組密碼信息文件/etc/gshadow中存放着用戶組的密碼以及管理員用戶名。

文件概覽:
在這裏插入圖片描述

字段對應信息:

1.組名:2.組密碼:3.組管理員用戶名:4.組中附加用戶


結語

不寫個5000字都對不起超詳細三個字。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章