Linux學習筆記:(二)用戶和組群賬戶管理



前言

  • 在Linux系統中,用戶賬戶是登錄系統的唯一憑證,其中root用戶是系統的最高管理者,該用戶的UID是0,與用戶和組群賬戶相關的配置文件有/etc/passwd,/etc/shadow,/etc/group和/etc/gshadow。


一、 用戶賬戶簡介

1、 用戶賬戶分類

  1. root用戶
    • root用戶UID為0。root用戶的權限是最高的,普通用戶無法執行的操作,root用戶都能完成,所以也稱之為超級用戶
  2. 系統用戶
    • 系統用戶的UID為1~999
    • 這類用戶不具有登錄Linux的能力,但卻是系統運行不可缺少的用戶。
  3. 普通用戶
    • 系統用戶的UID為1000~60000
    • 在Linux系統上進行普通操作,其使用系統的權限受限制。

2、 /etc/passwd文件

  • 假設以賬戶zhangsan登錄系統時,系統首先會檢查/etc/passwd文件,存在zhangsan賬戶,然后確定用戶zhangsan的UID,通過UID確認用戶身份,如果存在,則讀取/etc/shadow文件中對應的密碼,核實無誤,則登錄系統,讀取用戶的配置文件
[root@centos83 home]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
..............(省略)..........
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
rngd:x:994:991:Random Number Generator Daemon:/var/lib/rngd:/sbin/nologin
zhangsan:x:1000:1000::/home/zhangsan:/bin/bash

字段 字段含義
用戶名 在系統中用戶名應該具有唯一性
密碼 存放加密用戶的密碼,看到的是一個x,其實密碼已經被映射到/etc/shadow文件中
用戶標識號(UID) 每個用戶的UID都是唯一的,root用戶的UID是0,普通用戶的UID默認從1000開始
組群標識號(GID) 在系統內用一個整數標識用戶所屬的主要組群ID號,每個組群ID都是唯一的
用戶名全稱 用戶名描述,可以不設置
主目錄 用戶登錄系統后首先進入的目錄
登錄shell 用戶使用的Shell類型,Linux系統默認使用的Shell是/bin/bash

2、 /etc/shadow文件

  • /etc/shadow文件內容包括用戶及被加密的密碼以及其他/ect/passwd不能包括的信息,比如賬戶有效期等
  • /etc/shadow文件只有root用戶可以讀取和操作,確保系統安全
[root@centos83 home]# cat /etc/shadow
root:$6$Uq9EeN5GfNDLF83M$csUva0exzO/n3PIvhKv5D1Xs3Ga06G2whjfagtEtJUW1wlQbREEd6HkOjTRCTqGuZCXvg2WQ1wdyzqY.qfAzE1::0:99999:7:::
bin:*:18397:0:99999:7:::
..............(省略)..........
sshd:!!:18625::::::
rngd:!!:18625::::::
zhangsan:$6$HMTy.raoMPbhboQn$71FPRHyRycVf3AcenfNW1n7/qD7ep.x5vSeBSSxzJdWmvjoQ98oDhfA8Kz/6PlOgKe/ksj58AXeWBPOGAm/dl1:18625:0:99999:7:::
字段 字段含義
用戶名 這里的用戶名和/etc/passwd中的相同
加密密碼 密碼已經加密,如果由用戶顯示"!!",則表示這個用戶還沒有設置密碼,無法登錄到系統
用戶最后一次更改密碼的日期 從1970年1月1日算起到最后一次修改密碼的時間間隔天數
密碼允許更換前的天數 如果設置為0,則禁用此功能。該字段指定用戶可以更改密碼的天數
密碼需要更換的天數 如果設置為0,則禁用此功能。該字段指定用戶必須更改密碼的天數
密碼更換前警告的天數 用戶登錄系統后,系統登錄程序提醒用戶密碼即將過期
賬戶被取消激活前的天數 表示用戶密碼過期多少天后,系統會禁用此用戶
用戶賬戶過期日期 指定用戶賬戶禁用的天數(從1970年1月1日開始到賬戶被禁用的天數),如果這個字段的值為空,賬戶可以永久使用
保留字段 目前為空,為將來發展做預留


二、 用戶賬戶設置

1、useradd:創建用戶

  1. 創建用戶
    • useradd moon
  2. 創建用戶並設置UID為1010
    • useradd -u 1010 moon
  3. 創建用戶並設置用戶所屬群組為root
    • useradd -g root moon
  4. 創建系統用戶mysql並設置所屬組群
    • useradd -r -g mysql mysql
選項 選項含義
-d <主目錄> 新賬戶每次登錄時所使用的主目錄
-e <過期日> 設置賬戶的有效期限,日期格式為MM/DD/YY
-f <失效日> 設置密碼過期多少天后為失效狀態
-c <用戶名全稱> 設置用戶賬戶的用戶名全稱(描述)
-g <主要組群名> 指定用戶賬戶所屬的主要組群。
-G <次要組群名> 指定用戶賬戶為多個次要組群的成員,每個組群使用“,”來分隔
-m 用戶主目錄如果不存在則自動建立
-r 創建系統用戶賬戶,不會創建用戶主目錄,也不會響應在文件/etc/login.defs中定義的值
-u <用戶UID> 用戶的UID,數字不可以為負值

2、 usermod:修改用戶賬戶

  1. 修改用戶pp的登錄名為moon
    • usermod -l moon pp
  2. 修改用戶moon賬戶過期時間為2028年11月23日
    • usermod -e 11/23/2028 moon
  3. 修改用戶moon的主目錄到/home/oopp,並自動創建目錄
    • usermod -d /home/oopp -m moon
選項 選項含義
-m 移動主目錄的內容到新的位置
-l <新登錄名> 修改用戶賬戶名稱
-u <用戶UID> 修改用戶UID
-c <用戶名全稱> 修改用戶賬戶的用戶名全稱
-d <主目錄> 修改用戶登陸時的主目錄,如果指定-m選項,用戶舊目錄會移動到新的目錄中,如果舊目錄不存在,則創建新目錄
-e <過期日> 修改賬戶的有效期限,日期格式為MM/DD/YY
-f <失效日> 修改在密碼過期后多少天即設定密碼為失效狀態
-g <主要組群名> 修改用戶所屬的主要組群
-G <次要組群名> 修改用戶所屬的次要組群(附加組群)

3、 userdel:刪除用戶賬戶

  1. 刪除用戶moon
    • userdel moon
  2. 刪除用戶的同時刪除用戶主目錄
    • userdel -r moon
選項 選項含義
-r 刪除用戶時,把用戶的主目錄和本地郵件存儲的目錄或文件一同刪除
-f 強制刪除用戶


三、組群賬戶簡介

1、 組群賬戶分類

  1. 分類法一

    • 私有組群
      • 創建新用戶時,如果沒有指定該用戶所屬那一組群,則Linux會自動創建同名組群,此時這個組群就是私有組群
      • 將其他用戶加入到這個私有組群中,會使這個組群變為標准組群
    • 標准組群
      • 也稱為普通組群,可以包含多個用戶賬戶
      • 如果使用標准組群,則在創建新用戶時,應該指定該用戶所屬組群
  2. 分類法二

    • 主要組群
      • 當一個賬戶屬於多個組群成員時,登錄后所屬組群便是主要組群,其他組群是次要組群,一個用戶賬戶智能屬於一個主要組群
    • 次要組群
      • 也稱之為附加組群,一個用戶賬戶可以屬於多個次要組群

2、 /etc/group文件

  1. 文件簡介

    • 內容包括組群名、組群密碼、GID及該組群所包含的用戶
    • 比如把某一用戶加入到root組群,那么這個用戶就可以瀏覽root用戶主目錄的文件
    • 如果root用戶把某個文件的讀寫執行權限開放,root組群的所有用戶就都可以修改此文件
    • 如果是可執行文件,root組群的用戶也是可以執行的
[root@centos83 home]# cat /etc/group
root:x:0:
bin:x:1:
..............(省略)..........
sshd:x:74:
rngd:x:991:
zhangsan:x:1000:

字段 字段含義
組群名 組群名稱
組群密碼 存放加密的組群密碼,看到一個x,密碼已經被映射到/etc/gshadow文件中
組群標識號(GID) 在系統內用一個整數標識組群GID,每個GID都是唯一的,默認普通組群GID從1000開始,root組群GID是0
組群成員 屬於這個組群的成員,如root組群的成員有root用戶
  1. 組群GID范圍查看
//查看系統創建組群默認的GID范圍
[root@centos83 ~]# cat /etc/login.defs |grep GID
GID_MIN                  1000
GID_MAX                 60000

3、 /etc/gshadow文件

  • /etc/gshadow是/etc/group的加密文件,組群密碼存放在此文件中
  • /etc/gshadow和/etc/group是互補的兩個文件
  • 對於大型服務器,需要針對很多用戶和組群,定制比較復雜的權限模型。設置組群密碼是很有必要的
[root@centos83 ~]# cat /etc/gshadow
root:::
bin:::
daemon:::
sys:::
..............(省略)..........
zhangsan:!::

字段 字段含義
組群名 組群的名稱
組群密碼 密碼已加密,如果組群顯示的是“!”,表示這個組群沒有密碼
組群管理者 組群的管理者有權在該組中添加、刪除用戶
組群成員 屬於該組群的用戶成員列表,如有多個用戶則用逗號分隔


四、 組群賬戶設置

1、 groupadd:創建組群賬戶

  1. 創建組群china
    • groupadd china
  2. 創建GID為1300的組群ous
    • groupadd -g 1300 ous
  3. 創建系統族群chinese
    • groupadd -r chinese
    • // cat /etc/group |grep chinese命令查看用戶gid為978,1000以內均為系統組群
選項 選項含義
-g 為組群設置GID
-r 創建系統組群
-o 允許使用和別的組群相同GID創建組群
-f 即使組群存在,還是強制創建組群
-p <密碼> 為新組群設置加密的密碼

2、 groupmod:修改組群賬戶

  1. 修改china的GID為1400(修改的GID必須是新的。否則使用-o)
    • groupmod -g 1400 china
  2. 修改組群名稱為suhai
    • groupmod -n suhai china
選項 選項含義
-g 設置GID
-o 重復使用組群GID
-n <新組群名> 更改組群名稱

3、 groupdel:刪除組群賬戶

  1. 刪除時,如果該組群中仍舊包括某些用戶,必須先刪除這個用戶后才能刪除組群
  2. 刪除組群china
    • groupdel china


五、 用戶和組群賬戶維護

1、 passwd:設置用戶密碼

  1. 為用戶china添加密碼

    • passwd china
  2. 刪除用戶china密碼

    • passwd -d china

2、 gpasswd:組群管理

  1. 把用戶china添加到已有的組群group1中
    • gpasswd -a china group1
  2. 從組群group1中刪除china用戶
    • gpasswd -d china group1
選項 選項含義
-a <用戶> 將一個用戶加入到一個組群中
-d <用戶> 將一個用戶從一個組群中移除

3、 su:切換用戶

  1. 切換用戶china,但是不切換環境
    • su china
  2. 切換用戶china,並切換環境
    • su - china
  3. 從china用戶切換到root用戶
    • su 或者 su -
    • 切換root用戶不需要寫root名稱

ps:加了"-",是以login shell登陸的,所以會設置環境變量,也會將目錄變更到用戶所屬目錄下;如果不加,使用的還是切換前用戶的環境變量,有時候會出錯,看情況使用

4、 groups:顯示組群成員

[wuyiz@centos83 ~]$ groups wuyiz
wuyiz : wuyiz suhai

5、 id:顯示用戶UID及該用戶所屬組群的GID

[wuyiz@centos83 ~]$ id
uid=1000(wuyiz) gid=1000(wuyiz) 組=1000(wuyiz),1001(suhai) 環境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM