前言
Linux系統作為多用戶多任務的作業系統,可以在同一時間內允許多個用戶登錄、操作及配置計算機,隨著需求的增加,用戶的增加,我們也就需要對用戶進行管理,以至于更有效地開展專案,改善作業,更有效得滿足場景需要,提高效果、效率、效益,
下面我們就來了解一下Linux中如何對用戶進行管理操作,
目錄
- 前言
- 一.用戶管理命令
- 1.1 創建用戶
- 1.2 設定密碼
- 1.3 查看登錄用戶登錄
- 1.4 修改用戶屬性
- 1.5 用戶密碼有效性
- 1.6 洗掉用戶
- 1.7 切換登錄用戶
- 1.8 退出登錄
- 二.用戶組管理命令
- 2.1 添加用戶組
- 2.2 修改組屬性
- 2.3 設定用戶組
- 2.4 洗掉用戶組
- 三.用戶管理相關的組態檔
- 3.1 用戶資訊組態檔
- 3.2 用戶密碼資訊組態檔
- 3.3 創建用戶默認配置資訊檔案
- 3.4 用戶限制設定組態檔
- 四.組管理相關的組態檔
- 4.1 組資訊組態檔
- 4.2 組密碼資訊組態檔
- 結語
一.用戶管理命令
通過系統中的命令對用戶進行相應的操作,在講解命令之前,我們需要了解,在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 查看登錄用戶登錄
使用命令who 與 w 命令可以查詢當前系統上已登錄用戶的相關資訊,
語法格式: 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字都對不起超詳細三個字,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/242822.html
標籤:其他
