Linux系統中不僅是對用戶與組根據UID,GID進行了管理,還對Linux系統中的文件,按照用戶與組進行分類,針對不同的群體進行了權限管理,用他來確定誰能通過何種方式對文件和目錄進行訪問和操作。
一、文件權限
1.文件的權限針對三類對象進行定義
owner????? 屬主,縮寫u
group?????? 屬組,縮寫g
other??????? 其他,縮寫o
2.每個文件針對每類訪問者定義了三種主要權限
r:Read ? ? ?讀
w:Write ? ? ?寫
x:eXecute ? ? ?執行
另 X:針對目錄加執行權限,文件不加執行權限(因文件具備執行權限有安全隱患)
注意:root賬戶不受文件權限的讀寫限制,執行權限受限制
3.對于文件和目錄來說,r,w,x有著不同的作用和含義:
針對文件:
r:讀取文件內容
w:修改文件內容
x:執行權限對除二進制程序以外的文件沒什么意義
針對目錄:
目錄本質可看做是存放文件列表、節點號等內容的文件
r:查看目錄下的文件列表
w:刪除和創建目錄下的文件
x:可以cd進入目錄,能查看目錄中文件的詳細屬性,能訪問目錄下文件內容(基礎權限)
4.用戶獲取文件權限的順序:首先看是否為所有者,如果是,則后面權限不看;再看是否為所屬組,如果是,則后面權限不看。
二、修改文件訪問權限的方法
chmod????????????? 修改權限 change mode
方法1:mode法
格式:chmod who opt per file
who:u g o a(all)
opt:+ – =
per:r w x X
方法2:數字法
格式:chmod XXX file
rwx rw- r–
111 110 100
7?? 6?? 4
r:4
w:2
x:1
例:chmod 764 file??????? 給file文件添加 rwxrw-r– 權限
chmod -R +X dir?????????????? 給dir目錄添加X執行權限,dir目錄下文件不添加執行權限
(如果dir目錄下有文件已具備執行權限,則添加該文件執行權限)
三、UMASK值
作用:取消對應的權限,影響創建文件和目錄的默認權限
對目錄:
umask+default=777(dir)
對文件:
666-umask:觀察結果,如果有奇數,奇數位+1,偶數不變
四、三種特殊權限suid、sgid、sticky(sticky權限工作環境中相對常用)
1.suid
作用:給一個用戶繼承二進制程序所有者擁有的權限
suid權限位 位于所有者的執行權限位上,如果一個文件具有suid權限,則所有者執行位為s,文件表現為紅色背景
例:ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 Nov 24? 2015 /usr/bin/passwd
給file文件增加suid權限
chmod u+s file
chmod 4755 file?????????????? suid數字法表示為4
suid只適合作用在二進制程序上
2.sgid
作用1:給一個用戶繼承二進制程序所有組擁有的權限
sgid權限位 位于所有組的執行權限位,如果一個文件具有suid權限,則所有組的執行位為s,文件表現為黃色背景
例:ll `which cat`
-rwxr-sr-x. 1 root root 48568 Mar 23? 2017 /bin/cat
給file文件增加sgid權限
chmod g+s file
chmod 2755 file?????????????? sgid數字法表示為2
作用2:作用在目錄上時,使一個目錄下的新建的文件繼承目錄的所屬組
3.sticky
作用:作用于目錄上,此目錄的文件只能被所有者刪除
sticky權限位 位于其他的執行權限位上,如果一個文件具有sticky權限,則其他的執行位為t,目錄表現為綠色背景
如:ll -d /tmp
drwxrwxrwt. 17 root root 4096 Apr? 4 10:02 /tmp
給dir目錄添加sticky權限
chmod o+t dir
chmod 1777 dir??????????????? sticky數字法表示為1
五、ACL訪問控制列表
作用:實現更加靈活的權限管理,打破了三類用戶的權限管理
1.添加ACL權限
setfacl -m u:wang:0 file 使wang賬戶對指定file文件無權限
setfacl -m u:mage:rw file?????? 使mage賬戶對指定file文件有讀寫權限
setfacl -m g:g1:rw file 使g1組對指定file文件有讀寫權限
getfacl???? file???????????????????? 查看指定file文件的ACL權限
ACL權限執行順序類似于用戶獲取文件權限的順序,getfacl順序從上到下執行,一旦生效,下面的將不再生效(如果屬于多個組,權限累加)
2.刪除ACL權限
setfacl -x u:wang file????? 刪除wang賬戶對指定file文件的ACL權限
setfacl -x g:g1 file?? 刪除g1組對指定file文件的ACL權限
3.ACL權限下的mask
設置用戶對指定文件所能擁有的最大權限(限高作用)
setfacl -m mask::r file???????????? 使指定文件file所擁有的最大權限位讀r
setfacl -x mask::r file?????????????? 取消指定文件file的最大權限限制mask
setfacl -b f1????????????????????? 取消f1文件所有的ACL權限
ACL生效順序:所有者、自定義用戶、自定義組、其他人
4.備份和恢復ACL權限
getfacl -R /tmp/dir1>acl.txt?????????? 將dir1目錄下ACL權限備份
setfacl -R –set-file=acl.txt /tem/dir????? 恢復dir1目錄下ACL權限
六、文件權限操作的常用命令
chown????????????? 設置文件所有者(普通用戶無法修改文件所有者)
-R???? 遞歸
user:group?? 同時修改所有者,所有組
chgrp??????????????? 設置文件所屬組(普通用戶要想該所屬組,前提是文件所有者為自己,自己在所屬組中)
-R???? 遞歸
chmod????????????? 設置指定文件權限
-R???? 遞歸
–reference=f1 f2 f3??????? 參考f1文件權限設置f2,f3文件
chattr?????????????? 給指定文件添加保護,避免root賬戶誤操作
+i????? 鎖定文件,不能刪除,不能改名,不能更改內容
-i????? 解鎖+i
-a???? 鎖定文件,不能刪除,不能改名,但可追加內容(追加重定向)
-a???? 解鎖+a
+A??? 指定文件讀時間atime不再更改
lsattr???????????????? 查看指定文件是否有鎖定狀態
setfacl????????????? 設置文件ACL權限
-m mask::r file????????? 使指定文件file所擁有的最大權限位讀r
-x mask::r file??????????? 取消指定文件file的最大權限限制mask
-b f1?????????????????? 取消f1文件所有的ACL權限
-R –set-file=acl.txt /tem/dir?? 恢復dir1目錄下ACL權限
getfacl????????????? 查看文件ACL權限
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/94918