***原文鏈接: https://www.cnblogs.com/fengdejiyixx/p/10773731.html#:~:text=Linux
Linux操作系統(tǒng)對(duì)多用戶的管理,是非常繁瑣的,所以用組的概念來(lái)管理用戶就變得簡(jiǎn)單,每個(gè)用戶可以在一個(gè)獨(dú)立的組,每個(gè)組也可以有零個(gè)用戶或者多個(gè)用戶。
Linux系統(tǒng)用戶是根據(jù)用戶ID來(lái)識(shí)別的,默認(rèn)ID長(zhǎng)度為32位,默認(rèn)ID編號(hào)從0開(kāi)始,但是為了和老式系統(tǒng)兼容,用戶ID限制在60000以下,Linux用戶總共分為三種,分別如下:
root用戶 (ID 0)
系統(tǒng)用戶 (ID 1-499)
普通用戶 (ID 500以上)
Linux系統(tǒng)中的每個(gè)文件或者文件夾,都有一個(gè)所屬用戶及所屬組,使用id命令可以顯示當(dāng)前用戶的信息,使用passwd命令可以修改當(dāng)前用戶密碼。Linux操作系統(tǒng)用戶的特點(diǎn)如下:
每個(gè)用戶擁有一個(gè)UserID,操作系統(tǒng)實(shí)際讀取的是UID,而非用戶名;
每個(gè)用戶屬于一個(gè)主組,屬于一個(gè)或多個(gè)附屬組,一個(gè)用戶最多有31個(gè)附屬組;
每個(gè)組擁有一個(gè)GroupID;
每個(gè)進(jìn)程以一個(gè)用戶身份運(yùn)行,該用戶可對(duì)進(jìn)程擁有資源控制權(quán)限;
每個(gè)可登陸用戶擁有一個(gè)指定的Shell環(huán)境。
Linux用戶管理
Linux用戶在操作系統(tǒng)可以進(jìn)行日常管理和維護(hù),涉及到的相關(guān)配置文件如下:
/etc/passwd
保存用戶信息
/etc/shdaow
保存用戶密碼(以加密形式保存)
/etc/group
保存組信息
/etc/login.defs
用戶屬性限制,密碼過(guò)期時(shí)間,密碼最大長(zhǎng)度等限制
/etc/default/useradd
顯示或更改默認(rèn)的useradd配置文件
如需創(chuàng)建新用戶,可以使用命令useradd,執(zhí)行命令useradd test1即可創(chuàng)建test1用戶,同時(shí)會(huì)創(chuàng)建一個(gè)同名的組test1,默認(rèn)該用戶屬于test1主組。
Useradd test1命令默認(rèn)創(chuàng)建用戶test1,會(huì)根據(jù)如下步驟進(jìn)行操作:
在/etc/passwd文件中添加用戶信息;
如使用passwd命令創(chuàng)建密碼,密碼會(huì)被加密保存在/etc/shdaow中;
為test1創(chuàng)建家目錄:/home/test1;
將/etc/skel中的.bash開(kāi)頭的文件復(fù)制至/home/test1家目錄;
創(chuàng)建與用戶名相同的test1組,test1用戶默認(rèn)屬于test1同名組;
test1組信息保存在/etc/group配置文件中。
在使用useradd命令創(chuàng)建用戶時(shí),可以支持如下參數(shù):
用法:useradd [選項(xiàng)] 登錄
useradd -D
useradd -D [選項(xiàng)]
選項(xiàng):
-b, --base-dir BASE_DIR 指定新賬戶的家目錄;
-c, --comment COMMENT 新賬戶的 GECOS 字段;
-d, --home-dir HOME_DIR 新賬戶的主目錄;
-D, --defaults 顯示或更改默認(rèn)的 useradd 配置;
-e, --expiredate EXPIRE_DATE 新賬戶的過(guò)期日期;
-f, --inactive INACTIVE 新賬戶的密碼不活動(dòng)期;
-g, --gid GROUP 新賬戶主組的名稱或ID;
-G, --groups GROUPS 新賬戶的附加組列表;
-h, --help 顯示此幫助信息并推出;
-k, --skel SKEL_DIR 使用此目錄作為骨架目錄;
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默認(rèn)值;
-l, --no-log-init 不要將此用戶添加到最近登錄和登錄失敗數(shù)據(jù)庫(kù);
-m, --create-home 創(chuàng)建用戶的主目錄;
-M, --no-create-home 不創(chuàng)建用戶的主目錄;
-N, --no-user-group 不創(chuàng)建同名的組;
-o, --non-unique 允許使用重復(fù)的 UID 創(chuàng)建用戶;
-p, --password PASSWORD 加密后的新賬戶密碼;
-r, --system 創(chuàng)建一個(gè)系統(tǒng)賬戶;
-R, --root CHROOT_DIR chroot 到的目錄;
-s, --shell SHELL 新賬戶的登錄 shell;
-u, --uid UID 新賬戶的用戶 ID;
-U, --user-group 創(chuàng)建與用戶同名的組;
-Z, --selinux-user SEUSER 為SELinux 用戶映射使用指定 SEUSER。
Linux組管理
所有的Linux或者Windows系統(tǒng)都有組的概念,通過(guò)組可以更加方便的管理用戶,組的概念應(yīng)用于各行行業(yè),例如企業(yè)會(huì)使用部門、職能或地理區(qū)域的分類方式來(lái)管理成員,映射在Linux系統(tǒng),同樣可以創(chuàng)建用戶,并用組的概念對(duì)其管理。
Linux組有如下特點(diǎn):
每個(gè)組有一個(gè)組ID;
組信息保存在/etc/group中;
每個(gè)用戶至少擁有一個(gè)主組,同時(shí)還可以擁有31個(gè)附屬組。
通過(guò)命令groupadd、groupdel、groupmod來(lái)對(duì)組進(jìn)行管理,詳細(xì)參數(shù)使用如下:
groupadd用法
-f, --force 如果組已經(jīng)存在則成功退出;
并且如果 GID 已經(jīng)存在則取消 –g;
-g, --gid GID 為新組使用 GID;
-h, --help 顯示此幫助信息并推出;
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默認(rèn)值;
-o, --non-unique 允許創(chuàng)建有重復(fù) GID 的組;
-p, --password PASSWORD 為新組使用此加密過(guò)的密碼;
-r, --system 創(chuàng)建一個(gè)系統(tǒng)賬戶;
groupmod用法
-g, --gid GID 將組 ID 改為 GID;
-h, --help 顯示此幫助信息并推出;
-n, --new-name NEW_GROUP 改名為 NEW_GROUP;
-o, --non-unique 允許使用重復(fù)的 GID;
-p, --password PASSWORD 將密碼更改為(加密過(guò)的) PASSWORD;
groupdel用法
groupdel admin 刪除admin組;
二、 Linux權(quán)限管理
Linux權(quán)限是操作系統(tǒng)用來(lái)限制對(duì)資源訪問(wèn)的機(jī)制,權(quán)限一般分為讀、寫、執(zhí)行。系統(tǒng)中每個(gè)文件都擁有特定的權(quán)限、所屬用戶及所屬組,通過(guò)這樣的機(jī)制來(lái)限制哪些用戶或用戶組可以對(duì)特定文件進(jìn)行相應(yīng)的操作。
Linux每個(gè)進(jìn)程都是以某個(gè)用戶身份運(yùn)行,進(jìn)程的權(quán)限與該用戶的權(quán)限一樣,用戶的權(quán)限越大,則進(jìn)程擁有的權(quán)限就越大。
Lnux中有的文件及文件夾都有至少權(quán)限三種權(quán)限,常見(jiàn)的權(quán)限如表5-1所示:
Linux權(quán)限授權(quán),默認(rèn)是授權(quán)給三種角色,分別是user、group、other,Linux權(quán)限與用戶之間的關(guān)聯(lián)如下:
U代表User,G代表Group,O代表Other;
每個(gè)文件的權(quán)限基于UGO進(jìn)行設(shè)置;
權(quán)限三位一組(rwx),同時(shí)需授權(quán)給三種角色,UGO;
每個(gè)文件擁有一個(gè)所屬用戶和所屬組,對(duì)應(yīng)UGO,不屬于該文件所屬用戶或所屬組使用O來(lái)表示;
在Linux系統(tǒng)中,可以通過(guò)ls –l查看peter.net目錄的詳細(xì)屬性,如圖5-1所示:
|
drwxrwxr-x 2 peter1 peter1 4096 Dec 10 01:36 peter.net
|
peter.net目錄屬性參數(shù)詳解如下:
d 表示目錄,同一位置如果為-則表示普通文件;
rwxrwxr-x 表示三種角色的權(quán)限,每三位為一種角色,依次為u,g,o權(quán)限,如上則表示user的權(quán)限為rwx,group的權(quán)限為rwx,other的權(quán)限為r-x;
2表示文件夾的鏈接數(shù)量,可理解為該目錄下子目錄的數(shù)量;
從左到右,第一個(gè)peter1表示該用戶名,第二個(gè)peter1則為組名,其他人角色默認(rèn)不顯示;
4096表示該文件夾占據(jù)的字節(jié)數(shù);
Dec 10 01:36 表示文件創(chuàng)建或者修改的時(shí)間;
peter.net 為目錄的名,或者文件名。
peter.net目錄屬性參數(shù)詳解如下:
d 表示目錄,同一位置如果為-則表示普通文件;
rwxrwxr-x 表示三種角色的權(quán)限,每三位為一種角色,依次為u,g,o權(quán)限,如上則表示user的權(quán)限為rwx,group的權(quán)限為rwx,other的權(quán)限為r-x;
2表示文件夾的鏈接數(shù)量,可理解為該目錄下子目錄的數(shù)量;
從左到右,第一個(gè)peter1表示該用戶名,第二個(gè)peter1則為組名,其他人角色默認(rèn)不顯示;
4096表示該文件夾占據(jù)的字節(jié)數(shù);
Dec 10 01:36 表示文件創(chuàng)建或者修改的時(shí)間;
peter.net 為目錄的名,或者文件名。
Chmod用戶及組權(quán)限
修改某個(gè)用戶、組對(duì)文件夾的權(quán)限,用命令chmod實(shí)現(xiàn),其中以代指ugo,、-、=代表加入、刪除和等于對(duì)應(yīng)權(quán)限,具體案例如下:
(1) 授予用戶對(duì)peter.net目錄擁有rwx權(quán)限
|
chmod –R u+rwx peter.net
|
(2) 授予組對(duì)peter.net目錄擁有rwx權(quán)限
|
chmod –R g+rwx peter.net
|
(3) 授予用戶、組、其他人對(duì)jpeter.net目錄擁有rwx權(quán)限
|
chmod –R u+rwx,g+rwx,o+rwx peter.net
|
(4) 撤銷用戶對(duì)peter.net目錄擁有w權(quán)限
|
chmod –R u-w peter.net
|
(5) 撤銷用戶、組、其他人對(duì)peter.net目錄擁有x權(quán)限
|
chmod –R u-x,g-x,o-x peter.net
|
(6) 授予用戶、組、其他人對(duì)jpeter.net目錄只有rx權(quán)限
|
chmod –R u=rx,g=rx,o=rx peter.net
|
Chmod二進(jìn)制權(quán)限
Linux權(quán)限默認(rèn)使用rwx來(lái)表示,為了更簡(jiǎn)化在系統(tǒng)中對(duì)權(quán)限進(jìn)行配置和修改,Linux權(quán)限引入二進(jìn)制表示方法,如下代碼:
|
Linux權(quán)限可以將rwx用二進(jìn)制來(lái)表示,其中有權(quán)限用1表示,沒(méi)有權(quán)限用0表示;
Linux權(quán)限用二進(jìn)制顯示如下:
rwx=111
r-x=101
rw-=110
r--=100
依次類推,轉(zhuǎn)化為十進(jìn)制,對(duì)應(yīng)十進(jìn)制結(jié)果顯示如下:
rwx=111=4+2+1=7
r-x=101=4+0+1=5
rw-=110=4+4+0=6
r--=100=4+0+0=4
得出結(jié)論,用r=4,w=2,x=1來(lái)表示權(quán)限。
|
使用二進(jìn)制方式來(lái)修改權(quán)限案例演示如下,其中默認(rèn)peter.nett目錄權(quán)限為755:
(1) 授予用戶對(duì)peter.net目錄擁有rwx權(quán)限
|
chmod –R 755 peter.net
|
(2) 授予組對(duì)peter.net目錄擁有rwx權(quán)限
|
chmod –R 775 peter.net
|
(3) 授予用戶、組、其他人對(duì)peter.net目錄擁有rwx權(quán)限
|
chmod –R 777 peter.net
|
Linux特殊權(quán)限及掩碼
Linux權(quán)限除了常見(jiàn)的rwx權(quán)限之外,還有很多特殊的權(quán)限,細(xì)心的讀者會(huì)發(fā)現(xiàn),為什么Linux目錄默認(rèn)權(quán)限755,而文件默認(rèn)權(quán)限為644呢,這是因?yàn)長(zhǎng)inux權(quán)限掩碼umask導(dǎo)致。
每個(gè)Linux終端都擁有一個(gè)umask屬性,umask熟悉可以用來(lái)確定新建文件、目錄的默認(rèn)權(quán)限,默認(rèn)系統(tǒng)權(quán)限掩碼為022。在系統(tǒng)中每創(chuàng)建一個(gè)文件或者目錄,文件默認(rèn)權(quán)限是666,而目錄權(quán)限則為777,權(quán)限對(duì)外開(kāi)放比較大,所以設(shè)置了權(quán)限掩碼之后,默認(rèn)的文件和目錄權(quán)限減去umask值才是真實(shí)的文件和目錄的權(quán)限。
對(duì)應(yīng)目錄權(quán)限為:777-022=755;
對(duì)應(yīng)文件權(quán)限為:666-022=644;
執(zhí)行umask命令可以查看當(dāng)前默認(rèn)的掩碼,umask -S 023可以設(shè)置默認(rèn)的權(quán)限掩碼。
在Linux權(quán)限中,除了普通權(quán)限外,還有如下表5-2所示,三個(gè)特殊權(quán)限:
|
權(quán)限
|
對(duì)文件的影響
|
對(duì)目錄的影響
|
|
Suid
|
以文件的所屬用戶身份執(zhí)行,而非執(zhí)行文件的用戶
|
無(wú)
|
|
sgid
|
以文件所屬組身份去執(zhí)行
|
在該目錄中創(chuàng)建任意新文件的所屬組與該目錄的所屬組相同
|
|
sticky
|
無(wú)
|
對(duì)目錄擁有寫入權(quán)限的用戶僅可以刪除其擁有的文件,無(wú)法刪除其他用戶所擁有的文件
|
表5-2 Linux三種特殊權(quán)限
Linux中設(shè)置特殊權(quán)限方法如下:
q 設(shè)置suid: chmod u+s peter.net
q 設(shè)置sgid: chmod g+s peter.net
q 設(shè)置sticky: chmod o+t peter.net
特殊權(quán)限與設(shè)置普通權(quán)限一樣,可以使用數(shù)字方式表示:
SUID = 4
SGID = 2
Sticky = 1
可以通過(guò)chmod 4755 peter.net對(duì)該目錄授予特殊權(quán)限為s的權(quán)限,Linux系統(tǒng)中s權(quán)限的應(yīng)用常見(jiàn)包括:su、passwd、sudo,
本章小結(jié)
通過(guò)對(duì)本章內(nèi)容的介紹,讀者可以了解Linux用戶和組的系統(tǒng)知識(shí),同時(shí)賬號(hào)Linux用戶和組在系統(tǒng)中各種案例操作。讀者可以熟練新建用戶、刪除用戶、修改用戶屬性、添加組、修改組以及刪除組。