用戶權(quán)限
在Linux系統(tǒng)中,一個(gè)用戶對文件所能執(zhí)行的權(quán)力稱為用戶權(quán)限
文件屬性
權(quán)限位
rwx rwx rwx
從做到右,三個(gè)一組经磅,分別定義了文件所有者泌绣,所屬組,other對文件擁有的權(quán)限
權(quán)限
r: Readable 讀
w: Writable 寫
x: eXcutable 執(zhí)行
對文件的權(quán)限意義:
r: 可使用文件查看類工具獲取其內(nèi)容
w: 可修改其內(nèi)容
x: 可以把此文件提請內(nèi)核啟動(dòng)為一個(gè)進(jìn)程
對目錄的權(quán)限意義:
r: 可以使用ls查看此目錄中文件列表
w: 可在此目錄中創(chuàng)建文件预厌,也可刪除此目錄中的文件
x: 可以使用ls -l查看此目錄中文件列表阿迈,可以cd進(jìn)入此
用戶訪問文件得到的權(quán)限的判斷過程
先看是不是所有者,如果是所有者轧叽,直接匹配權(quán)限苗沧,后面的就不看了,不是就往下看炭晒,一旦匹配待逞,不往下走,匹配順序:所有者网严,所屬組识樱,other
文件權(quán)限操作命令
chmod
chmod[OPTION]... OCTAL-MODE FILE...
-R: 遞歸修改權(quán)限
chmod[OPTION]... MODE[,MODE]... FILE...
MODE:
修改一類用戶的所有權(quán)限:
u= g= o= ug= a= u=,g=
修改一類用戶某位或某些位權(quán)限
u+ u-g+ g-o+ o-a+ a-+ -
chmod[OPTION]... --reference=RFILE FILE...
參考RFILE文件的權(quán)限,將FILE的修改為同RFILE
特殊權(quán)限
SUID, SGID, Sticky
三種常用權(quán)限:r, w, x user, group, other
安全上下文
前提:進(jìn)程有屬主和屬組屿笼;文件有屬主和屬組
(1) 任何一個(gè)可執(zhí)行程序文件能不能啟動(dòng)為進(jìn)程,取決發(fā)起者對程序文件是否擁有執(zhí)行權(quán)限
(2) 啟動(dòng)為進(jìn)程之后牺荠,其進(jìn)程的屬主為發(fā)起者,進(jìn)程的屬組為發(fā)起者所屬的組
(3) 進(jì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)限
SUID
suid 放在所有者權(quán)限的x位,表現(xiàn)為大S
只能作用在二進(jìn)制的可執(zhí)行的程序上才有意義肝断,不能作用在非二進(jìn)制可執(zhí)行程序,所有用戶在執(zhí)行可執(zhí)行二進(jìn)制程序時(shí)繼承所有者的權(quán)限
權(quán)限設(shè)定:
chmod u+s FILE...
chmod u-s FILE...
SGID
sgid 放在所屬組權(quán)限的x位驰凛,表現(xiàn)為大S
同suid,所有用戶在執(zhí)行可執(zhí)行二進(jìn)制程序時(shí)繼承所屬組的權(quán)限
權(quán)限設(shè)定:
chmod g+s FILE...
chmod g-s FILE...
Sticky
Sticky (粘滯位) 放在other權(quán)限的x位胸懈,表現(xiàn)為大T(原本有執(zhí)行權(quán)限表現(xiàn)為t,原本沒有執(zhí)行權(quán)限變現(xiàn)為T)
具有寫權(quán)限的目錄通常用戶可以刪除該目錄中的任何文件,無論該文件的權(quán)限或擁有權(quán)
在目錄設(shè)置Sticky 位恰响,只有文件的所有者或root可以刪除該文件
sticky 設(shè)置在文件上無意義
權(quán)限設(shè)定:
chmod o+t DIR...
chmod o-t DIR...
大X
X(x權(quán)限特殊形式)
針對目錄增加x權(quán)限
對文件
1 無執(zhí)行的文件趣钱,不會增加x權(quán)限
2 任意三種人有執(zhí)行權(quán)限,也會增加x權(quán)限
ACL
ACL:Access Control List
除了文件的所有者胚宦,所屬組和其它人首有,可以對更多的用戶設(shè)置權(quán)限
CentOS7默認(rèn)創(chuàng)建的xfs和ext4文件系統(tǒng)具有ACL功能
CentOS7之前版本,默認(rèn)手工創(chuàng)建的ext4文件系統(tǒng)無ACL功能,需手動(dòng)增加
tune2fs –o acl/dev/sdb1
mount –o acl/dev/sdb1 /mnt/test
ACL生效順序:所有者枢劝,自定義用戶井联,自定義組,其他人
為多用戶或者組的文件和目錄賦予訪問權(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
?setfacl -m g:salesgroup:rw file| directory
?setfacl -m d:u:wang:rx directory
?setfacl -x u:wang file |directory
?setfacl -X file.acl directory
ACL文件上的group權(quán)限是mask 值(自定義用戶您旁,自定義組烙常,擁有組的最大權(quán)限),而非傳統(tǒng)的組權(quán)限
getfacl可看到特殊權(quán)限:flags
通過ACL賦予目錄默認(rèn)x權(quán)限,目錄內(nèi)文件也不會繼承x權(quán)限
base ACL 不能刪除
setfacl-k dir 刪除默認(rèn)ACL權(quán)限
setfacl–b file1清除所有ACL權(quán)限
getfaclfile1 | setfacl--set-file=-file2 復(fù)制file1的acl權(quán)限給file2
mask只影響除所有者和other的之外的人和組的最大權(quán)限
Mask需要與用戶的權(quán)限進(jìn)行邏輯與運(yùn)算后鹤盒,才能變成有限的權(quán)限(Effective Permission)
用戶或組的設(shè)置必須存在于mask權(quán)限設(shè)定范圍內(nèi)才會生效setfacl-m mask::rxfile
--set選項(xiàng)會把原有的ACL項(xiàng)都刪除蚕脏,用新的替代侦副,需要注意的是一定要包含UGO的設(shè)置,不能象-m一樣只是添加ACL就可以
示例:
setfacl --set u::rw,u:wang:rw,g::r,o::-file1
備份和恢復(fù)ACL
主要的文件操作命令cp和mv都支持ACL驼鞭,只是cp命令需要加上-p 參數(shù)跃洛。但是tar等常見的備份工具是不會保留目錄和文件的ACL信息
getfacl -R /tmp/dir1 > acl.txt
setfacl -R -b /tmp/dir1
setfacl -R --set-file=acl.txt /tmp/dir1
setfacl --restore acl.txt
getfacl -R /tmp/dir1