linux用戶組有2種:1、基本組 ?( ?私有組 ?);建立賬戶時,若沒有指定賬戶所屬的組,系統會建立一個和用戶名相同的組,這個組就是基本組。2、附加組 ?( ?公有組 ?),可以容納多個用戶,組中的用戶都具有組所擁有的權利。
linux用戶和組的分類
1、linux下的用戶可以分為3類
-
超級用戶 —— 用戶名為 root ,它具有一切權限,只有進行系統維護 ( 例如:建立用戶等 ) 或其他必要情形下才用超級用戶登錄,以避免系統出現安全問題。
-
Linux系統正常運行所必需的用戶即為偽用戶(system user)。主要是為了滿足相應的系統進程對文件屬主的要求而建立的,例如: bin 、 daemon 、 adm 、 lp 等用戶。系統用戶不能用來登錄。
-
普通用戶——是為了讓使用者能夠使用Linux系統資源而建立的,我們的大多數用戶屬于此類。
2、linux中的組有以下兩類:
-
基本組 ?( ?私有組 ?) ?:建立賬戶時,若沒有指定賬戶所屬的組,系統會建立一個和用戶名相同的組,這個組就是基本組。
-
附加組 ?( ?公有組 ?) ?:可以容納多個用戶,組中的用戶都具有組所擁有的權利。
3、linux中用戶組和用戶的配置文件
在linux中,用戶賬號,密碼、用戶組信息,和用戶組密碼是存放在不同的配置文件中的。
文件功能 | 文件名稱 |
用戶帳號文件 |
/etc/passwd |
用戶密碼 | /etc/shadow |
用戶組帳號文件 | /etc/gruoup |
用戶組密碼文件 | /etc/gshadow |
(1)用戶賬號文件——/etc/passwd
passwd ? 是一個文本文件,用于定義系統的用戶賬號,由于所有用戶都對 ? passwd ? 有讀權限,所以該文件中只定義用戶賬號,而不保存口令。 ??
# ? 每行定義一個用戶賬號信息,每行由 ? 7 ? 個字段組成,字段之間用 ? “:” ? 分隔,其格式如下: ?
賬號名稱 ? : ? 密碼 ? :UID:GID: ? 個人資料 ? : ? 主目錄 ? :Shell ?
/etc/passwd ? 文件中字段說明 ??
-
賬號名稱:用戶登錄 ? Linux ? 系統時使用的名稱。
-
密碼:以前是以加密格式保存密碼的位置,現在密碼保存在 ? /etc/shadow ? 文件中,此處只是密碼占 ?? 位符 ? “x” ? 或 ? “*” ? 。若為 ? “x” ? ,說明密碼經過了 ? shadow ? 的保護。
-
UID ? :用戶的標識,是一個數值,用它來區分不同的用戶,每個用戶都有一個 ? UID ? 數值:
超級用戶的 ? UID——0 ?
-
系統用戶的 ? UID——1 ? ~ ? 999
-
普通用戶的 ? UID—— ? ≥ ? 1000
-
GID ? :用戶所在基本組的標識,是一個數值,用它來區分不同的組,相同的組具有相同的 ? GID ? 。
-
個人資料:可以記錄用戶的完整姓名、地址、辦公室電話、家庭電話等個人信息。
-
主目錄:類似 ? windows ? 的個人目錄,通常是 ? /home/username ? ,這里 ? username ? 是用戶名,用戶 ?? 執行 ? “cd ? ~ ? ” ? 命令時當前目錄會切換到個人主目錄。
-
Shell ? :定義用戶登錄后激活的 ? Shell ? ,默認是 ? bash Shell
(2)用戶密碼文件——/etc/shadow
#每行定義了一個用戶信息,行中各字段用“:”隔開,其格式如下: ??
登錄名:加密口令:最后一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標志 ?
/etc/shadow文件中的每行9個字段的含義分別為字段
-
登錄名 :登錄名
-
加密口令 :使用SHA-512/SHA-256/MD5算法加密后的密碼( $id$, ?id為1示 md5,5表示sha256, 6為sha512),若為空,表示該用戶無需密碼即可登錄,若為“*” 表示該賬號不 能用于登錄系統,若為“!”表示該賬號密碼已被鎖定
-
最后一次修改時間 :最近一次更改密碼的日期,以距離1970年1月1日的天數表示
-
最小時間間隔 :密碼在多少天內不能被修改。默認值為0,表示不限制
-
最大時間間隔 :密碼在多少天后必須被修改。默認值為99999,表示不進行限制
-
警告時間 :提前多少天警告用戶密碼將過期,默認值為7天,0表示不提供警告
-
不活動時間 :密碼過期多少天后禁用此用戶
-
失效時間 :密碼失效日期,以距離1970年1月1日的天數表示,默認為空,表示永久可用 ?? 標志:保留未用,以便以后發展之用
查看用戶上次一次修改root密碼的日期 ?
(3)用戶組賬號文件——/etc/group
系統中的每個組,在/etc/group文件中有一行記錄,任何用戶均可以讀取用戶組賬戶信息配置文件。 ?
字段說明
-
Groupname :組的名字
-
Passwd :組的加密口令
-
GID :是系統區分不同組的ID,在/etc/passwd域中的GID字段是用這個數來指定用戶的基本組
-
Userlist :是用“,”分開的用戶名,列出的成員以該組為附加組。
作業:
1、創建用戶lockuser, 并指定家目錄為/home/lock, 然后鎖定該用戶
2、解鎖lockuser, 并設定下次登錄時必須修改密碼
3、創建用戶testuser并設置密碼,修改用戶名為normaluser
4、創建文件,查詢文件的acl,為文件設置acl 用戶為testuser1 權限為 rwx,為文件設置acl的mask: 權限為r-x
5、設置suid,為文件設置suid(兩種方式 u+s和nnnn)的方式
6、設置sgid, 為文件設置sgid(兩種方式 g+s和nnnn)的方式
7、設置sbit,為目錄設置sbit(兩種方式 o+t和nnnn)的方式
Linux 添加用戶至用戶組
通過使用 Linux 命令行的幾個的示例,逐步向你展示如何在 Linux 上將用戶添加到用戶組中,以及如何在 Linux 上添加用戶和組。這些命令應該可以在任何 Linux 發行版上工作,并且已經在centos、debian 和 ubuntu 上進行過測試。
添加一個新用戶到用戶組
一個 Linux 用戶可以有一個主組(Primary group)和一個或多個附屬組(Secondary groups)。這些組可以在創建用戶時作為 adduser 命令的參數。
所有命令都必須以 root 用戶的身份執行。在 Ubuntu 上,請在所有命令前加上 sudo,或者運行sudo -s 切換到 root 用戶。
添加用戶組
作為第一步,我將添加兩個新的用戶組,分別是 family 和 friends:
groupadd?family groupadd?friends
添加新用戶至單個用戶組
下面我將一個新用戶 tom,同時將用戶添加到用戶組 family。family 用戶組將通過使用 -G 參數作為一個附屬組添加。
useradd?-G?family?tom
添加新用戶到多個用戶組
tom 現在是 family 用戶組的一個用戶。參數 -G 允許指定多個用戶組,每個用戶組之間使用逗號進行分隔。如果要將用戶 tom 添加到 family 和 friends 兩個用戶組,使用下面的命令:
useradd?-G?family,friends?tom
設置用戶密碼
請注意,新的 Linux 用戶 tom 還沒有密碼,所以無法登錄。要設置此用戶的密碼,可以執行下面的命令:
passwd?tom
并在命令請求時輸入兩次新密碼。
在上面的示例中,我們將用戶 tom 添加到輔助組中,adduser 命令自動創建了一個新的主組,并將該組分配為主組。
-
用戶名: tom
-
主組: tom
-
附屬組: family(或者使用第二個案例添加 family 和 friends 兩個附屬組)
設置新的主組
也許你想在添加 tom 用戶時,設置主組為 family(而不是默認創建的 tom 用戶組),附屬組為 friends,可以使用這個命令:
useradd?-g?family?-G?friends?tom
使用 man 命令可以獲得 useradd 命令的所有命令行選項的詳細描述:
man?useradd
將已有的用戶添加至用戶組
對于這個任務,我們將使用 usermod 命令。usermod 命令可以修改用戶的各種選項,包括用戶的組成員關系。
首先,我將添加第三個用戶組 colleagues:
groupadd?colleagues
使用 usermod
我將 colleagues 用戶組作為附屬組添加到用戶 tom:
usermod?-a?-G?colleagues?tom
命令解釋:-a 表示 append,它只能與 -G 選項(附屬組)組合使用。所以最終我們將 tom 用戶添加到 colleagues 用戶組中,這個用戶組是用戶的一個附屬組。
-G 選項可以指定多個用戶組,每個用戶組之間使用逗號進行分隔。例如:-G group1,group2,group3。
如果想要修改 tom 用戶的主組為 family,可以使用命令:
usermod?-g?family?tom
使用 man 命令可以獲取 usermod 命令的所有命令行選項的詳細說明:
man?usermod