一、USERS
UID為0的用戶為管理員用戶,任何一個(gè)UID為0的用戶,都可為管理員用戶
若系統(tǒng)沒(méi)有了UID=0的管理員用戶,則系統(tǒng)無(wú)法啟動(dòng)
用戶ID:管理員:root,UID為0
系統(tǒng)用戶:UID為1-499,1-999,對(duì)守護(hù)進(jìn)程獲取資源進(jìn)行權(quán)限分配
普通用戶:UID為500-65535,1000-65535,交互式登錄
創(chuàng)建用戶時(shí)指定UID時(shí),可指定UID>65535的UID,即UID可指定為70000
組(group)GID
管理員組:root GID為0
系統(tǒng)組:1-499,1-999(CENTOS7)
普通組:500-65535,1000-65535
liunx中,允許用戶名和組名相同,windows中不允許用戶和組同名
- linux安全上下文:
運(yùn)行中的程序即進(jìn)程,進(jìn)程所能夠訪問(wèn)資源的權(quán)限取決于進(jìn)程的運(yùn)行者的身份 - linux組的類(lèi)別:
用戶的主要組:
用戶必須屬于一個(gè)且只有一個(gè)主組
組名同用戶名,且僅包含一個(gè)用戶
用戶的附加組:
一個(gè)用戶可以屬于零個(gè)或多個(gè)輔助組
- passwd文件格式:
login name:登錄用名(danran)
passwd:密碼位(X)
UID:用戶身份編碼(1000)
GID:登錄默認(rèn)所在組編號(hào)(1000)
GECOS:用戶全名或注釋即描述
home directory:用戶主目錄(/home/danran)
shell:用戶默認(rèn)使用shell(/bin/bash)
- passwd配置文件格式描述:
name:passwd:UID:GID:GECOS:directory:shell
修改用戶的屬性信息也可直接修改/etc/passwd配置文件
如果刪除用戶的家目錄,則在登錄時(shí)會(huì)自動(dòng)登錄到/目錄上,但不會(huì)禁止登錄
- shadow文件格式
1、登錄用名
2、用戶密碼: 一般用sha512 加密,$6位sha512算法,$5位sha256算法,$1為md5加密
3、從1970 年1 月1 日起到密碼最近一次被更改的時(shí)間,單位day
4、密碼再過(guò)幾天可以被變更(0 表示隨時(shí)可被變更)
5、密碼再過(guò)幾天必須被變更(99999 表示永不過(guò)期)
6、密碼過(guò)期前幾天系統(tǒng)提醒用戶(默認(rèn)為一周)
7、密碼過(guò)期幾天后帳號(hào)會(huì)被鎖定
8、從1970 年1 月1日算起,多少天賬號(hào)失效
![]()
- !禁止用戶登錄
鎖定用戶時(shí),禁止用戶登錄和切換,但root用戶不受限制可以正常切換,空口令可以登錄
- 密碼加密:
加密機(jī)制:
加密:明文--> 密文
解密:密文--> 明文
單向加密:哈希算法(散列算法),原文不同,密文必不同,密碼數(shù)據(jù)一致,加密過(guò)后的結(jié)果也是一樣的
哈希算法的特點(diǎn):如果兩個(gè)密碼的數(shù)據(jù)一樣,則加密處理后的結(jié)果也是一樣的,因此用戶密碼在加密時(shí)又因?yàn)榍懊嬗旨恿艘恍╇S機(jī)的隨機(jī)數(shù),即加密過(guò)后第2個(gè)和第三個(gè)$$之間的數(shù),因此口令跟隨機(jī)數(shù)綜合起來(lái)的結(jié)果也就不一致。加的隨機(jī)數(shù)稱之為salt(鹽)
![]()
如果知道確定的salt隨機(jī)數(shù),則使用openssl命令推算密碼口令,相同的算法及相同的密碼,算出來(lái)的加密口令不一致,但是指定salt數(shù)據(jù),則推算出來(lái)的md5數(shù)據(jù)則是完全一致的
相同算法定長(zhǎng)輸出,獲得密文不可逆推出原始數(shù)據(jù)
雪崩效應(yīng):初始條件的微小改變,引起結(jié)果的巨大改變
md5: message digest, 128bits
sha1: secure hash algorithm, 160bits
sha224: 224bits
sha256: 256bits
sha384: 384bits $5
sha512: 512bits $6
centos6加密算法為sha512,shadow文件中表示為$6,$1對(duì)應(yīng)的加密算法是md5
![]()
man authconfig | grep passwd 可查找支持更新的加密算法
更改定義加密算法 authconfig --passalgo=sha256 -- update加密算法保存文件為 ==/etc/login.defs==
-
口令有效期策略:
密碼復(fù)雜性策略
使用數(shù)字、大寫(xiě)字母、小寫(xiě)字母及特殊字符中至少3種
足夠長(zhǎng)
使用隨機(jī)密碼
定期更換, 不要使用最近曾經(jīng)使用過(guò)的密碼
- group文件格式
群組名稱:就是群組名稱
群組密碼:通常不需要設(shè)定,密碼是被記錄在/etc/gshadow
GID的 :就是群組的 ID
以當(dāng)前組為附加組的用戶列表( 分隔符為逗號(hào))
- gshadow文件格式
群組名稱:就是群組名稱
群組密碼:
組管理員列表:組管理員的列表,更改組密碼和成員
以當(dāng)前組為附加組的用戶列表:(分隔符為逗號(hào))
- 新建用戶的相關(guān)配置文件模板和命令
vim /etc/default/useradd
/etc/skel/* 存放用戶系統(tǒng)環(huán)境
/etc/login.defs 加密算法保存文件
newusers passwd 格式文件 批量創(chuàng)建用戶
chpasswd 批量修改用戶口令
- 用戶和組的配置文件:
/etc/passwd:用戶及其屬性信息(名稱、UID、主組ID等)
/etc/grup:組及其屬性信息
/etc/shadow:用戶密碼及其相關(guān)屬性
/etc/gshadow:組密碼及其相關(guān)屬性
/var/spool/mail:用戶的郵件目錄
加密算法保存文件為 ==/etc/login.defs==
-
命令:
pwunconv:將用戶密碼從shadow文件中顯示在passwd文件中,即取消密碼映射,則/etc/shadow文件將自動(dòng)消失
pwconv:打開(kāi)用戶投影密碼,將密碼映射到/etc/shadow文件
chfn 修改用戶的描述信息
finger:查看用戶的描述信息(需安裝finger*軟件包)
chfn danrna 修改danran用戶描述信息
finger danran 查看danran用戶的描述信息
chsh -s /bin/csh danran 修改danran用戶的shell類(lèi)型 用戶和組管理命令
用戶管理命令
useradd
usermod
userdel
組帳號(hào)維護(hù)命令
groupadd
groupmod
groupdel
-
用戶創(chuàng)建useadd
useradd [options] LOGIN -u UID : [UID_MIN, UID_MAX] 定義在/etc/login.defs -o 配合-u 選項(xiàng),不檢查UID 的唯一性,可使用重復(fù)的uid號(hào) -g GID :指明用戶所屬基本組,可為組名,也可以GID -c "COMMENT" :用戶的注釋信息 -d HOME_DIR: 以指定的路徑( 不存在) 為家目錄 -s SHELL : 指明用戶的默認(rèn)shell 程序,可用列表在/etc/shells文件中 -G GROUP1[,GROUP2,...] :為用戶指明附加組,組須事先存在 -N 不創(chuàng)建私用組做主組,使用users 組做主組 -m:創(chuàng)建家目錄 -M:不創(chuàng)建家目錄 -r: 創(chuàng)建系統(tǒng)用戶 CentOS 6: ID<500 ,CentOS 7: ID<1000 系統(tǒng)用戶不自動(dòng)創(chuàng)建家目錄,也不會(huì)創(chuàng)建郵件目錄,shell環(huán)境不一定
新建用戶的默認(rèn)值設(shè)定:/etc/default/useradd 文件中
顯示或更改默認(rèn)設(shè)置:
useradd -D
useradd –D -s SHELL
useradd –D –b BASE_DIR,更改默認(rèn)家目錄位置eg /app
useradd –D –g GROUP
-
用戶屬性修改:
usermod [OPTION] login -u UID: 新UID -g GID: 新主 組 -G GROUP1[,GROUP2,...[,GROUPN]]] :新附加組,原來(lái)的附加組將會(huì)被覆蓋;若保留原有,則要同時(shí)使用 -a 選項(xiàng) -a:附加不覆蓋原來(lái)的組 -s SHELL :新的默認(rèn)SHELL -c 'COMMENT' :新的注釋信息 -d HOME: 新家目錄不會(huì)自動(dòng)創(chuàng)建;若要?jiǎng)?chuàng)建新家目錄并移動(dòng)原家數(shù)據(jù),同時(shí)使用-m 選項(xiàng) -l login_name: 新的名字 eg usermod -l newtom tom -L: lock 指定用戶, 在/etc/shadow 加密碼欄的增加 ! -U: unlock 指定用戶,將 將 /etc/shadow 的 密碼欄的 ! 拿掉 -e YYYY-MM-DD: 指明用戶賬號(hào)過(guò)期日期 -f INACTIVE: 設(shè)定非活動(dòng)期限 -
查看用戶的相關(guān)id信息
id [OPTION]... [USER] -u: 顯示UID -g: 顯示GID -G: 顯示用戶所屬的組的ID -n: 顯示名稱,需配合ugG 使用 -
創(chuàng)建組
groupadd [OPTION]... group_name -g GID: 指明GID 號(hào);[GID_MIN, GID_MAX] -r: 創(chuàng)建系統(tǒng)組 CentOS 6: ID<500 CentOS 7: ID<1000 修改和刪除組
組屬性修改:groupmod
groupmod [OPTION]... group
-n group_name: 新名字
-g GID: 新的GID
組刪除:groupdel
groupdel GROUP
刪除附加組
usermod -G "" tom 刪除tom的附加組
gpasswd -d tom bin 將tom從bin附加組刪除
-
更改組密碼:
組密碼:gpasswdgpasswd [OPTION] GROUP -a user: 將user 添加至指定組中 -d user: 從指定組中移除用戶user -A user1,user2,...: 設(shè)置有管理權(quán)限的用戶列表 newgrp 命令:臨時(shí)切換主組
如果用戶本不屬于此組,則需要組密碼
newgrp danran 將自己的主組臨時(shí)變?yōu)閐anran
-
更改和查看組成員
groupmems [options] [action] options: -g, --group groupname 更改為指定組 ( 只有root) Actions: -a, --add username 指定用戶加入組 -d, --delete username 從組中刪除用戶 -p, --purge 從組中清除所有成員 -l, --list 顯示組成員列表
groups [OPTION].[USERNAME]... 查看用戶所屬組列表
![]()
- su切換用戶
切換用戶的方式:
su UserName :非登錄式切換,即不會(huì)讀取目標(biāo)用戶的配置文件,不改變當(dāng)前工作目錄
su - UserName :登錄式切換,會(huì)讀取目標(biāo)用戶的配置文件,切換至家目錄,完全切換
root su 至其他用戶無(wú)須密碼;非root 用戶切換時(shí)需要密碼
換個(gè)身份執(zhí)行命令:
su [-] UserName -c 'COMMAND'
su - root 'cat /etc/shadow' 以root的身份執(zhí)行cat命令
選項(xiàng):-l --login
su -l UserName 于 相當(dāng)于 su - UserName
- 刪除用戶
userdel [OPTION]... login
-r: 刪除用戶 家目錄
- 設(shè)置密碼
passwd [OPTIONS] UserName: 修改指定用戶的密碼,僅root 用戶權(quán)限
passwd: 修改自己的密碼
常用選項(xiàng):
-l: 鎖定指定用戶
-u: 解鎖指定用戶
-e: 強(qiáng)制用戶下次登錄修改密碼
-n mindays: 指定最短使用期限
-x maxdays :最大使用期限
-w warndays :提前多少天開(kāi)始警告
-i inactivedays :非活動(dòng)期限
--stdin :從標(biāo)準(zhǔn)輸入接收用戶密碼
echo " PASSWORD " | passwd --stdin USERNAME
- 修改用戶密碼策略
chage [OPTION]... LOGIN
-d:最近一次修改時(shí)間
-E:過(guò)期時(shí)間
-I:非活動(dòng)時(shí)間
-m:最短使用期限
-M:最長(zhǎng)使用期限
-W:警告時(shí)間
–l 顯示密碼策略
chage -l danran 列出用戶口令策略的相關(guān)信息
示例:
chage -d 0 tom 下一次登錄強(qiáng)制重設(shè)密碼
chage -m 0 –M 42 –W 14 –I 7 tom
chage -E 2016-09-10 tom
- change:更改賬號(hào)口令策略
- getent:查看文件的記錄信息,只查看文件中某個(gè)用戶的全部信息
getent passwd danran 查看passwd文件中danran用戶的信息
![]()
- 將用戶添加進(jìn)組
Gpasswd +組名 修改組密碼
Newgrp +用戶 把該用戶添加進(jìn)組
gpasswd -a dan danran 將danran用戶添加進(jìn)dan組里
- 修改用戶和組命令使用
useradd 創(chuàng)建用戶 eg useradd danran(創(chuàng)建淡然用戶)
groupadd 創(chuàng)建組
Userdel 刪除用戶
Groupdel 刪除組
Passwd 修改用戶密碼
ghpasswd 批量修改用戶口令
Gpasswd 修改組密碼
Finger 用來(lái)簡(jiǎn)單的查看系統(tǒng)上的用戶信息 eg finger rich
Useradd -c 描述信息 -d 指定家目錄 -g 指定私有組 -G指定附加組 -s 指定shell環(huán)境
eg useradd -c boss -d /user -u 1000 -G root -s /bin/bash
-m:創(chuàng)建用戶時(shí),強(qiáng)制給用戶創(chuàng)建目錄
-M:創(chuàng)建用戶時(shí),但不創(chuàng)建家目錄
-D:default,為useradd命令創(chuàng)建的用戶指定新的默認(rèn)值
Useradd -r 增加系統(tǒng)用戶
Useradd -D 查看系統(tǒng)默認(rèn)用戶屬性
Useradd -D -s /bin/tsch 修改系統(tǒng)默認(rèn)用戶的登錄屬性
Usermod 修改用戶屬性,參數(shù)同useradd一樣,-
-G GID:默認(rèn)會(huì)覆蓋原有的附加組,如果是添加,則同時(shí)使用-a選項(xiàng)
-d /path/to/new_home:默認(rèn)不會(huì)遷移用戶的家目錄,如果要遷移,則同時(shí)使用-m
-l New_login_name:修改登錄名稱
Usermod -l 修改用戶賬號(hào)的登錄名
Usermod -p 修改用戶密碼
usermod -s /bin/csh danran 修改用戶的默認(rèn)shell
chsh -s /bin/bash danran 修改用戶的默認(rèn)shell
Groupmod -g 修改GID eg groupmod -g 2000 test
Groupmod -n 修改組名 eg groupmod -g test1 test
Passwd -e 強(qiáng)制用戶下次登錄時(shí)修改密碼
Passwd -l 鎖定用戶
Passwd -u 解鎖用戶
鎖定用戶時(shí),禁止用戶登錄和切換,但root用戶不受限制可以正常切換
Passwd -d 刪除用戶密碼
Userdel 刪除用戶及passwd、shadow、group、gshadow四個(gè)文件,保留用戶名文件和電子郵件
Userdel -r 刪除用戶和用戶的所有文件,包括用戶名文件和電子郵件
groupmems -g danran -l 查看danran組里的其他成員,即顯示以danran為附加組的用戶
groupmems -g danran -d harry 將harry組從danran附加組里刪除
gpasswd -d harry danran 從danran附加組中刪除harry組
groups danran 列出danran用戶的主組
gpasswd danran 修改danran組的密碼
newgrp danran 將自己的主組臨時(shí)變?yōu)閐anran
如果用戶本身就屬于danran附加組的成員,并shadow文件中記錄了屬于danran附加組,則不需要輸入密碼就可直接更換臨時(shí)主組,但如果不屬于附加組,則切換為danran主組需要輸入danran組的密碼
gpasswd -a dan danran 將dan用戶添加進(jìn)danran組里
成員更改組成員關(guān)系后,用戶必須重新登錄才能獲得最近更改的組成員關(guān)系
Chsh:修改用戶默認(rèn)shell
Chfn:修改注釋信息
vipw:vim 編輯passwd文件
vigr:vim 編輯group文件
pwck:語(yǔ)法檢查,檢查用戶文件格式
grpck:語(yǔ)法檢查,檢查組文件格式
newusers passwd 根據(jù)passwd格式文件批量創(chuàng)建用戶
二、文件權(quán)限
- 文件權(quán)限
| r(readable) | w(writable) | x(eXcuable) | u(owner) | g(group) | o(other) | a(all) |
|---|---|---|---|---|---|---|
| 讀 | 寫(xiě) | 執(zhí)行 | 所有者 | 所屬組 | 其他人 | 所有人 |
| 4 | 2 | 1 |
用戶訪問(wèn)文件,按照匹配順序依次匹配,如果普通用戶文件的所有者和所屬組其中一個(gè)有執(zhí)行權(quán)限,-o沒(méi)有-x權(quán)限,盡管root用戶不屬于該文件所有者和所有組,root用戶依然可以借用-X執(zhí)行權(quán)限
- 刪除文件,跟文件本身的權(quán)限沒(méi)有關(guān)系,而跟目錄本身有關(guān)系,因?yàn)槲募鎯?chǔ)在父目錄結(jié)構(gòu)塊中,
- 目錄權(quán)限:
目錄若只有讀寫(xiě)權(quán)限,只能查看目錄文件列表,不能訪問(wèn)文件和cd進(jìn)目錄(查看,刪除),如果只有執(zhí)行權(quán)限,可以cd進(jìn)目錄,但是不能ls列出文件列表,可以執(zhí)行目錄中的文件,執(zhí)行是基礎(chǔ)權(quán)限,若知道文件名,可以直接訪問(wèn)目錄中的文件;寫(xiě)權(quán)限,需配合x(chóng)權(quán)限才能生效,如果要?jiǎng)h除目錄下的文件,目錄必須要有執(zhí)行權(quán)限和寫(xiě)權(quán)限
文件:
r: 可使用文件查看類(lèi)工具獲取其內(nèi)容
w: 可修改其內(nèi)容
x: 可以把此文件提請(qǐng)內(nèi)核啟動(dòng)為一個(gè)進(jìn)程
目錄:
r: 可以使用ls 查看此目錄中文件列表
w: 可在此目錄中創(chuàng)建文件,也可刪除此目錄中的文件
x: 可以使用ls -l 查看此目錄中文件列表,可以cd 進(jìn)入此目錄
X:遞歸修改目錄執(zhí)行權(quán)限時(shí),只給所有的目錄x 權(quán)限,而不給文件x執(zhí)行權(quán)限,但是如果文件中有任何一個(gè)人有執(zhí)行權(quán)限,則文件將會(huì)全部加上執(zhí)行權(quán)限
- chmod 修改文件權(quán)限
chmod [OPTION]... OCTAL-MODE FILE...
-R: 遞歸修改權(quán)限
chmod [OPTION]... MODE[,MODE]... FILE...
MODE:
修改一類(lèi)用戶的所有權(quán)限:
u= g= o= ug= a= u=,g=
修改一類(lèi)用戶某位或某些位權(quán)限
u+ u- g+ g- o+ o- a+ a- + -
chmod [OPTION]... --reference=RFILE FILE... 參考RFILE 文件的權(quán)限,將FILE 的修改為同RFILE
權(quán)限設(shè)置eg:
chgrp sales testfile
chown root:admins testfile
chmod u+wx,g-r,o=rx file
chmod -R g+rwX /testdir
chmod 600 file
chown mage testfile
若用戶沒(méi)有任何權(quán)限,則設(shè)置權(quán)限為空,賦值權(quán)限也可直接賦八進(jìn)制數(shù)字
- 八進(jìn)制權(quán)限:
| 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
|---|---|---|---|---|---|---|---|
| --- | --x | -w- | -wx | r-- | r-x | rw- | rwx |
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 640:rw- r-- --- | 755:rwx r-x r-x | 7:--- --- rwx | 0:--- --- --- |
|---|
- 文件屬性操作
chown 設(shè)置文件的所有者
chgrp 設(shè)置文件的屬組信息
修改文件的屬組和屬主
修改文件的屬主:chown
chown [OPTION]... [OWNER][:[GROUP]] FILE...
用法:
命令中的冒號(hào)可用. 替換
-R: 遞歸
chown [OPTION]... --reference=RFILE FILE...
eg:chown -R danran:danran qq
chown -R danran.danran qq
修改文件的屬組:chgrp
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
-R 遞歸
用戶屬于某個(gè)附加組時(shí),才能修改文件的屬組為這個(gè)附加組
- 新建文件或目錄的默認(rèn)權(quán)限
umask掩碼:從777或666中,將文件對(duì)應(yīng)的權(quán)限位去掉,從而得出默認(rèn)權(quán)限
umask值:可以用來(lái)保留在創(chuàng)建文件權(quán)限
新建FILE 權(quán)限: 666-umask如果所得結(jié)果某位存在執(zhí)行(奇數(shù))權(quán)限,則將其權(quán)限+1
- umask值計(jì)算權(quán)限
新建DIR 權(quán)限: 777-umask
非特權(quán)用戶umask是002
root 的umask是022
umask: 查看umask值
umask #: 設(shè)定umask值
umask 002
umask –S 模式方式顯示
![]()
umask –p 輸出可被調(diào)用
![]()
- umask全局設(shè)置: /etc/bashrc umask用戶設(shè)置:~/.bashrc
三、文件系統(tǒng)的特殊權(quán)限
- Suid 和 guid 的特殊權(quán)限及sticky位
Suid 當(dāng)在一個(gè)二進(jìn)制文件上應(yīng)用了suid后,那么任何人在執(zhí)行該命令時(shí)臨時(shí)擁有命令擁有人的權(quán)限,只能應(yīng) 用在可執(zhí)行文件上
u+s
sgid 當(dāng)在一個(gè)二進(jìn)制文件上應(yīng)用了sgid后,那么任何人在執(zhí)行該命令時(shí)臨時(shí)擁有命令擁有組的權(quán)限,只能應(yīng)用在可執(zhí)行文件上,如果在一個(gè)目錄上應(yīng)用了sgid后,那么任何人在該目錄創(chuàng)建文件/目錄的擁有組會(huì)繼承目錄本身的組
g+s
Sticky 如果在一個(gè)目錄上應(yīng)用了sticky權(quán)限后,那么該目錄中的文件僅文件擁有人和root用戶能刪除
o+t
- SUID, SGID, Sticky
三種常用權(quán)限:r, w, x user, group, other
安全上下文
前提:進(jìn)程有屬主和屬組;文件有屬主和屬組(1) 任何一個(gè)可執(zhí)行程序文件能不能啟動(dòng)為進(jìn)程, 取決發(fā)起者對(duì)程序文件是否擁有執(zhí)行權(quán)限
(2) 啟動(dòng)為進(jìn)程之后,其進(jìn)程的屬主為發(fā)起者, 進(jìn)程的屬組為發(fā)起者所屬的組
(3) 進(jìn)程訪問(wèn)文件時(shí)的權(quán)限,取決于進(jìn)程的發(fā)起者(a) 進(jìn)程的發(fā)起者,同文件的屬主:則應(yīng)用文件屬主權(quán)限
(b) 進(jìn)程的發(fā)起者,屬于文件屬組;則應(yīng)用文件屬組權(quán)限
(c) 應(yīng)用文件‘其他’權(quán)限
- 可執(zhí)行文件上的SUID權(quán)限
任何一個(gè)可執(zhí)行程序文件能不能啟動(dòng)為進(jìn)程:取決發(fā)起者對(duì)程序文件是否擁有執(zhí)行權(quán)限
啟動(dòng)為進(jìn)程之后,其進(jìn)程的屬主為原程序文件的屬主
SUID 只對(duì)二進(jìn)制可執(zhí)行程序有效;SUID 設(shè)置在目錄上無(wú)意義
權(quán)限設(shè)定:chmod u+s FILE...
chmod u-s FILE...
- 可執(zhí)行文件上的SGID權(quán)限
任何一個(gè)可執(zhí)行程序文件能不能啟動(dòng)為進(jìn)程:取決發(fā)起者對(duì)程序文件是否擁有執(zhí)行權(quán)限
啟動(dòng)為進(jìn)程之后,其進(jìn)程的屬主為原程序文件的屬主
權(quán)限設(shè)定:chmod g+s FILE...
chmod g-s FILE...
- 目錄上的SGID權(quán)限
默認(rèn)情況下,用戶創(chuàng)建文件時(shí),其屬組為此用戶所屬的主組
一旦某目錄被設(shè)定了SGID ,則對(duì)此目錄有寫(xiě)權(quán)限的用戶在此目錄中創(chuàng)建的文件所屬的組為此目錄的屬組
通常用于創(chuàng)建一個(gè)協(xié)作目錄權(quán)限設(shè)定:
chmod g+s DIR...
chmod g-s DIR...
- Sticky位
具有寫(xiě)權(quán)限的目錄通常用戶可以刪除該目錄中的任何文件,不管該文件的權(quán)限或擁有權(quán)
在目錄設(shè)置Sticky 位,只有文件的所有者或root可以刪除該文件
sticky設(shè)置在文件上無(wú)意義權(quán)限設(shè)定:
chmod o+t DIR...
chmod o-t DIR...
- 權(quán)限位
| SUID:4 | SGID:2 | STICKY:1 |
|---|
- 權(quán)限位映射:
SUID: user, 占據(jù)屬主的執(zhí)行權(quán)限位
s:屬主擁有x權(quán)限
S:屬主沒(méi)有x權(quán)限
SGID: group, 占據(jù)屬組的執(zhí)行權(quán)限位
s: group擁有x權(quán)限
S: group沒(méi)有x權(quán)限
Sticky: other, 占據(jù)other 的執(zhí)行權(quán)限位
t: other 擁有x 權(quán)限
T:other 沒(méi)有x 權(quán)限
- 設(shè)定文件的特殊屬性
chattr +i 不能刪除,改名,更改
chattr +a 只能追加內(nèi)容
lsattr 顯示特定屬性
四、ACL權(quán)限
ACL訪問(wèn)控制列表:Access Control List ,實(shí)現(xiàn)靈活的權(quán)限管理
除了文件的所有者,所屬組和其它人,可以對(duì)更多的用戶設(shè)置權(quán)限
CentOS7 默認(rèn)創(chuàng)建的xfs 和ext4 文件系統(tǒng)具有ACL功能
CentOS7 之前版本,默認(rèn)手工創(chuàng)建的ext4 文件系統(tǒng)無(wú)ACL功能, 需手動(dòng)增加tune2fs –o acl /dev/sdb1
mount –o acl /dev/sdb1 /mnt/test
- ACL 生效順序:所有者,自定義用戶,自定義組,其他
getfacl 查看文件的acl屬性
setfacl設(shè)置文件的acl屬性
-m:創(chuàng)建cal
u:用戶
g:組
o:其他人
-x:刪除acl權(quán)限
-b:清除所有的acl設(shè)置
-m:設(shè)置mask的值
-b,--remove-all:刪除所有擴(kuò)展的acl規(guī)則,基本的acl規(guī)則(所有者,群組,其他)將被保留。
-k,--remove-default:刪除缺省的acl規(guī)則。如果沒(méi)有缺省規(guī)則,將不提示。
-n,--no-mask:不要重新計(jì)算有效權(quán)限。setfacl默認(rèn)會(huì)重新計(jì)算ACL mask,除非mask被明確的制定。
--mask:重新計(jì)算有效權(quán)限,即使ACL mask被明確指定。
-d,--default:設(shè)定默認(rèn)的acl規(guī)則。
--restore=file:從文件恢復(fù)備份的acl規(guī)則(這些文件可由getfacl -R產(chǎn)生)。通過(guò)這種機(jī)制可以恢復(fù)整個(gè)目錄樹(shù)的acl規(guī)則。此參數(shù)不能和除--test以外的任何參數(shù)一同執(zhí)行。
--test:測(cè)試模式,不會(huì)改變?nèi)魏挝募腶cl規(guī)則,操作后的acl規(guī)格將被列出。
-R,--recursive:遞歸的對(duì)所有文件及目錄進(jìn)行操作。
-L,--logical:跟蹤符號(hào)鏈接,默認(rèn)情況下只跟蹤符號(hào)鏈接文件,跳過(guò)符號(hào)鏈接目錄。
-P,--physical:跳過(guò)所有符號(hào)鏈接,包括符號(hào)鏈接文件。
--version:輸出setfacl的版本號(hào)并退出。
setfacl -x u:wang file |directory 刪除wang用戶的acl權(quán)限,刪除不干凈
setfacl -k dir 刪除默認(rèn)ACL權(quán)限
setfacl –b file1 清除所有ACL權(quán)限
getfacl file1 | setfacl --set-file=- file2 復(fù)制file1的acl 權(quán)限給file2
![]()
setfacl -m u:danran:rwx passwd 對(duì)passwd文件添加danran用戶rwx權(quán)限,
- 用戶或組的設(shè)置必須存在于mask權(quán)限設(shè)定范圍內(nèi)才會(huì)生效
setfacl -m mask::rx file
--set 選項(xiàng)會(huì)把原有的ACL 項(xiàng)都刪除,用新的替代,需要注意的是一定要包含UGO 的設(shè)置,不能象-m 一樣只是添加ACL就可以
示例:setfacl --set u::rw,u:wang:rw,g::r,o::- file1
為多用戶或者組的文件和目錄賦予訪問(wèn)權(quán)限r(nóng)wx
? mount -o acl /directory
? getfacl file |directory
? setfacl -m u:wang:rwx file|directory
? setfacl -Rm g:sales:rwX directory
? setfacl -M file.acl file|directory 利用編輯好的acl設(shè)置文件批量設(shè)置acl
![]()
? setfacl -m g:salesgroup:rw file| directory 創(chuàng)建某組的acl權(quán)限
? setfacl -m d:u:wang:rx directory 對(duì)目錄創(chuàng)建默認(rèn)的acl權(quán)限,會(huì)作為目錄下新建文件的默認(rèn)權(quán)限
![]()
? setfacl -x u:wang file |directory 刪除wang用戶的acl權(quán)限,刪除不干凈
? setfacl -X file.acl directory 根據(jù)acl權(quán)限文件批量刪除acl權(quán)限
- 備份和恢復(fù)ACL
主要的文件操作命令cp和mv都支持ACL,只是cp 命令需要加上-p參數(shù)。但是tar 等常見(jiàn)的備份工具是不會(huì)保留目錄和文件的ACL信息
getfacl -R /tmp/dir1 > acl.txt 將tmp/dir1目錄下所有文件的權(quán)限導(dǎo)入到act.txt文件中保存
setfacl -R -b /tmp/dir1 刪除/tmp/dir1目錄下所有文件的權(quán)限
setfacl -R --set-file=acl.txt /tmp/dir1 根據(jù)act.txt文件中記錄的acl權(quán)限還原/tmp/dir1目錄下所有文件的acl權(quán)限setfacl --set u::rw,u:wang:rw,g::r,o::- file1
>為多用戶或者組的文件和目錄賦予訪問(wèn)權(quán)限r(nóng)wx
>>? mount -o acl /directory
? getfacl file |directory
? setfacl -m u:wang:rwx file|directory
? setfacl -Rm g:sales:rwX directory
? setfacl -M file.acl file|directory 利用編輯好的acl設(shè)置文件批量設(shè)置acl
![]()
? setfacl -m g:salesgroup:rw file| directory 創(chuàng)建某組的acl權(quán)限
? setfacl -m d:u:wang:rx directory 對(duì)目錄創(chuàng)建默認(rèn)的acl權(quán)限,會(huì)作為目錄下新建文件的默認(rèn)權(quán)限
![]()
? setfacl -x u:wang file |directory 刪除wang用戶的acl權(quán)限,刪除不干凈
? setfacl -X file.acl directory 根據(jù)acl權(quán)限文件批量刪除acl權(quán)限
- 備份和恢復(fù)ACL
>主要的文件操作命令cp和mv都支持ACL,只是cp 命令需要加上-p參數(shù)。但是tar 等常見(jiàn)的備份工具是不會(huì)保留目錄和文件的ACL信息
>>getfacl -R /tmp/dir1 > acl.txt 將tmp/dir1目錄下所有文件的權(quán)限導(dǎo)入到act.txt文件中保存
setfacl -R -b /tmp/dir1 刪除/tmp/dir1目錄下所有文件的權(quán)限
setfacl -R --set-file=acl.txt /tmp/dir1 根據(jù)act.txt文件中記錄的acl權(quán)限還原/tmp/dir1目錄下所有文件的acl權(quán)限
setfacl --restore acl.txt 根據(jù)act.txt文件中記錄的acl權(quán)限還原當(dāng)前目錄下所有文件的acl權(quán)限
getfacl -R /tmp/dir1 查看當(dāng)前目錄下所有文件的ACL權(quán)限
- ACL小結(jié)
ACL 文件上的group權(quán)限是mask值(自定義用戶,自定義組,擁有組的最大權(quán)限), 而非傳統(tǒng)的組權(quán)限
getfacl 可看到特殊權(quán)限:flags
通過(guò)ACL 賦予目錄默認(rèn)x 權(quán)限 , 目錄內(nèi)文件也不會(huì)繼承x權(quán)限
base ACL 不能刪除,即默認(rèn)的權(quán)限
mask 只影響除所有者和other 的之外的人和組的最大權(quán)限
Mask 需要與用戶的權(quán)限進(jìn)行邏輯與運(yùn)算后,才能變成有限的權(quán)限(Effective Permission)