linux用戶組有2種:1、基本組 ( 私有組 );建立賬戶時(shí),若沒有指定賬戶所屬的組,系統(tǒng)會(huì)建立一個(gè)和用戶名相同的組,這個(gè)組就是基本組。2、附加組 ( 公有組 ),可以容納多個(gè)用戶,組中的用戶都具有組所擁有的權(quán)利。
本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。
linux用戶和組的分類
1、linux下的用戶可以分為3類
-
超級(jí)用戶 —— 用戶名為 root ,它具有一切權(quán)限,只有進(jìn)行系統(tǒng)維護(hù) ( 例如:建立用戶等 ) 或其他必要情形下才用超級(jí)用戶登錄,以避免系統(tǒng)出現(xiàn)安全問題。
-
系統(tǒng)用戶(偽用戶) —— 是 Linux 系統(tǒng)正常工作所必需的用戶。主要是為了滿足相應(yīng)的系統(tǒng)進(jìn)程對(duì)文件屬主的要求而建立的,例如: bin 、 daemon 、 adm 、 lp 等用戶。系統(tǒng)用戶不能用來登錄。
-
普通用戶——是為了讓使用者能夠使用Linux系統(tǒng)資源而建立的,我們的大多數(shù)用戶屬于此類。
2、linux中的組有以下兩類:
-
基本組 ( 私有組 ) :建立賬戶時(shí),若沒有指定賬戶所屬的組,系統(tǒng)會(huì)建立一個(gè)和用戶名相同的組,這個(gè)組就是基本組。
-
附加組 ( 公有組 ) :可以容納多個(gè)用戶,組中的用戶都具有組所擁有的權(quán)利。
3、linux中用戶組和用戶的配置文件
在linux中,用戶賬號(hào),密碼、用戶組信息,和用戶組密碼是存放在不同的配置文件中的。
文件功能 | 文件名稱 |
用戶帳號(hào)文件 |
/etc/passwd |
用戶密碼 | /etc/shadow |
用戶組帳號(hào)文件 | /etc/gruoup |
用戶組密碼文件 | /etc/gshadow |
(1)用戶賬號(hào)文件——/etc/passwd
passwd 是一個(gè)文本文件,用于定義系統(tǒng)的用戶賬號(hào),由于所有用戶都對(duì) passwd 有讀權(quán)限,所以該文件中只定義用戶賬號(hào),而不保存口令。
# 每行定義一個(gè)用戶賬號(hào)信息,每行由 7 個(gè)字段組成,字段之間用 “:” 分隔,其格式如下:
賬號(hào)名稱 : 密碼 :UID:GID: 個(gè)人資料 : 主目錄 :Shell
/etc/passwd 文件中字段說明
-
賬號(hào)名稱:用戶登錄 Linux 系統(tǒng)時(shí)使用的名稱。
-
密碼:以前是以加密格式保存密碼的位置,現(xiàn)在密碼保存在 /etc/shadow 文件中,此處只是密碼占 位符 “x” 或 “*” 。若為 “x” ,說明密碼經(jīng)過了 shadow 的保護(hù)。
-
UID :用戶的標(biāo)識(shí),是一個(gè)數(shù)值,用它來區(qū)分不同的用戶,每個(gè)用戶都有一個(gè) UID 數(shù)值:
超級(jí)用戶的 UID——0 -
系統(tǒng)用戶的 UID——1 ~ 999
-
普通用戶的 UID—— ≥ 1000
-
GID :用戶所在基本組的標(biāo)識(shí),是一個(gè)數(shù)值,用它來區(qū)分不同的組,相同的組具有相同的 GID 。
-
個(gè)人資料:可以記錄用戶的完整姓名、地址、辦公室電話、家庭電話等個(gè)人信息。
-
主目錄:類似 Windows 的個(gè)人目錄,通常是 /home/username ,這里 username 是用戶名,用戶 執(zhí)行 “cd ~ ” 命令時(shí)當(dāng)前目錄會(huì)切換到個(gè)人主目錄。
- Shell :定義用戶登錄后激活的 Shell ,默認(rèn)是 Bash Shell
(2)用戶密碼文件——/etc/shadow
# 每行定義了一個(gè)用戶信息,行中各字段用 “:” 隔開 , 其格式如下:
登錄名 : 加密口令 : 最后一次修改時(shí)間 : 最小時(shí)間間隔 : 最大時(shí)間間隔 : 警告時(shí)間 : 不活動(dòng)時(shí)間 : 失效時(shí)間 : 標(biāo)志
/etc/shadow文件中的每行9個(gè)字段的含義分別為字段
-
登錄名 :登錄名
-
加密口令 :使用SHA-512/SHA-256/MD5 算法加密后的密碼( $id$, id為1示 md5,5表示sha256, 6為sha512),若為空,表示該用戶無需密碼即可登錄,若為“*” 表示該賬號(hào)不 能用于登錄系統(tǒng),若為“!”表示該賬號(hào)密碼已被鎖定
-
最后一次修改時(shí)間 :最近一次更改密碼的日期, 以距離 1970 年 1 月 1 日的天數(shù)表示
-
最小時(shí)間間隔 :密碼在多少天內(nèi)不能被修改。默認(rèn)值為0, 表示不限制
-
最大時(shí)間間隔 :密碼在多少天后必須被修改。默認(rèn)值為99999, 表示不進(jìn)行限制
-
警告時(shí)間 :提前多少天警告用戶密碼將過期, 默認(rèn)值為 7 天 ,0 表示不提供警告
-
不活動(dòng)時(shí)間 :密碼過期多少天后禁用此用戶
-
失效時(shí)間 :密碼失效日期, 以距離 1970 年 1 月 1 日的天數(shù)表示 , 默認(rèn)為空 , 表示永久可用 標(biāo)志:保留未用,以便以后發(fā)展之用
查看用戶上次一次修改root密碼的日期

(3)用戶組賬號(hào)文件——/etc/group
系統(tǒng)中的每個(gè)組,在 /etc/group 文件中有一行記錄,任何用戶均可以讀取用戶組賬戶信息配置文件。

字段說明
-
Groupname :組的名字
-
Passwd :組的加密口令
-
GID :是系統(tǒng)區(qū)分不同組的ID ,在 /etc/passwd 域中的 GID 字段是用這個(gè)數(shù)來指定用戶的基本組
-
Userlist :是用“ , ” 分開的用戶名,列出的成員以該組為附加組。
作業(yè):
1、創(chuàng)建用戶lockuser, 并指定家目錄為/home/lock, 然后鎖定該用戶

2、解鎖lockuser, 并設(shè)定下次登錄時(shí)必須修改密碼
3、創(chuàng)建用戶testuser并設(shè)置密碼,修改用戶名為normaluser
4、創(chuàng)建文件,查詢文件的acl,為文件設(shè)置acl 用戶為testuser1 權(quán)限為 rwx,為文件設(shè)置acl的mask: 權(quán)限為r-x
5、設(shè)置suid,為文件設(shè)置suid(兩種方式 u+s和nnnn)的方式
6、設(shè)置sgid, 為文件設(shè)置sgid(兩種方式 g+s和nnnn)的方式
7、設(shè)置sbit,為目錄設(shè)置sbit(兩種方式 o+t和nnnn)的方式
Linux 添加用戶至用戶組
通過使用 Linux 命令行的幾個(gè)的示例,逐步向你展示如何在 Linux 上將用戶添加到用戶組中,以及如何在 Linux 上添加用戶和組。這些命令應(yīng)該可以在任何 Linux 發(fā)行版上工作,并且已經(jīng)在CentOS、Debian 和 Ubuntu 上進(jìn)行過測(cè)試。
添加一個(gè)新用戶到用戶組
一個(gè) Linux 用戶可以有一個(gè)主組(Primary group)和一個(gè)或多個(gè)附屬組(Secondary groups)。這些組可以在創(chuàng)建用戶時(shí)作為 adduser
命令的參數(shù)。
所有命令都必須以 root
用戶的身份執(zhí)行。在 Ubuntu 上,請(qǐng)?jiān)谒忻钋凹由?sudo
,或者運(yùn)行sudo -s
切換到 root
用戶。
添加用戶組
作為第一步,我將添加兩個(gè)新的用戶組,分別是 family
和 friends
:
groupadd family groupadd friends
添加新用戶至單個(gè)用戶組
下面我將一個(gè)新用戶 tom
,同時(shí)將用戶添加到用戶組 family
。family
用戶組將通過使用 -G
參數(shù)作為一個(gè)附屬組添加。
useradd -G family tom
添加新用戶到多個(gè)用戶組
tom
現(xiàn)在是 family
用戶組的一個(gè)用戶。參數(shù) -G
允許指定多個(gè)用戶組,每個(gè)用戶組之間使用逗號(hào)進(jìn)行分隔。如果要將用戶 tom
添加到 family
和 friends
兩個(gè)用戶組,使用下面的命令:
useradd -G family,friends tom
設(shè)置用戶密碼
請(qǐng)注意,新的 Linux 用戶 tom
還沒有密碼,所以無法登錄。要設(shè)置此用戶的密碼,可以執(zhí)行下面的命令:
passwd tom
并在命令請(qǐng)求時(shí)輸入兩次新密碼。
在上面的示例中,我們將用戶 tom
添加到輔助組中,adduser
命令自動(dòng)創(chuàng)建了一個(gè)新的主組,并將該組分配為主組。
- 用戶名: tom
- 主組: tom
- 附屬組: family(或者使用第二個(gè)案例添加 family 和 friends 兩個(gè)附屬組)
設(shè)置新的主組
也許你想在添加 tom
用戶時(shí),設(shè)置主組為 family
(而不是默認(rèn)創(chuàng)建的 tom
用戶組),附屬組為 friends
,可以使用這個(gè)命令:
useradd -g family -G friends tom
使用 man
命令可以獲得 useradd
命令的所有命令行選項(xiàng)的詳細(xì)描述:
man useradd
將已有的用戶添加至用戶組
對(duì)于這個(gè)任務(wù),我們將使用 usermod
命令。usermod
命令可以修改用戶的各種選項(xiàng),包括用戶的組成員關(guān)系。
首先,我將添加第三個(gè)用戶組 colleagues
:
groupadd colleagues
使用 usermod
我將 colleagues
用戶組作為附屬組添加到用戶 tom
:
usermod -a -G colleagues tom
命令解釋:-a
表示 append
,它只能與 -G
選項(xiàng)(附屬組)組合使用。所以最終我們將 tom
用戶添加到 colleagues
用戶組中,這個(gè)用戶組是用戶的一個(gè)附屬組。
-G
選項(xiàng)可以指定多個(gè)用戶組,每個(gè)用戶組之間使用逗號(hào)進(jìn)行分隔。例如:-G group1,group2,group3
。
如果想要修改 tom
用戶的主組為 family
,可以使用命令:
usermod -g family tom
使用 man
命令可以獲取 usermod
命令的所有命令行選項(xiàng)的詳細(xì)說明:
man usermod