在linux系統下檔案的許可權通常會以下面的格式顯示出來:
Chmod檔案許可權: 許可權的管理chmod
-a 所有的許可權 -u 檔案所有者的許可權 -g 組許可權 -o 其他使用者的許可權
可以使用運算子來設定許可權 + - =
r 可讀 w 可寫 x 可執行 也可以用八進位制的數字代表全許可權:0 1 2 3 4 5 6 7
0 代表什麼許可權也沒有
1 x 可執行的
2 w 可寫的
3 w+x wx
4 r 可讀的
5 r+x
6 r+w
7 r+w+x
Umask檔案許可權
在linxu系統建立之初,為了安全起見任何使用者所建立的檔案的都沒有可執行的許可權x,檔案的的許可權為777-111=666.而我們所建立出的檔案的許可權都為644,
也就是說只有檔案所有者有讀寫的許可權,組、其他人只有可讀的許可權,這是因為 Umask=0022.
第一個0 代表檔案的特殊許可權
第二個0 代表檔案所有者
第三個0 代表所有組
第四個0 代表 其他人
Umask是拿走的意思,就好比檔案的許可權是666,umask=022,剩下的就是檔案的許可權。
修改umask的值 #umask=
重啟系統後umask的值就會又被還原到0022,永久生效可以可以修改使用者目錄下面的.bash_profile這個檔案。
ACL規則:
當檔案,目錄的許可權不夠用時,就要使用acl規則,來更細的劃分檔案的許可權。
root是唯一有權設定acl規則的的使用者。
選項
-b,--remove-all
刪除所有擴充套件的acl規則,基本的acl規則(所有者,群組,其他)將被保留。
-k,--remove-default
刪除預設的acl規則。
-n, --no-mask
不要重新計算有效許可權。setfacl預設會重新計算acl mask,除非mask被明確的制定。
-mask
重新計算有效許可權,即使acl mask被明確指定。
-d,--default
設定預設的acl規則。
-restore=file
從檔案恢復備份的acl規則(這些檔案可由getfacl -R產生)。通過這種機制可以恢復整個目錄樹的acl規則。此引數不能和除--test以外的任何引數一同執行。
--test
測試模式,不會改變任何檔案的acl規則,操作後acl規則將被列出。
-R,--recursive
遞迴的對所有檔案及目錄進行操作。
-L,--logical
跟蹤符號連結,預設情況下只跟蹤符號連結檔案,跳過符號連結目錄。
-P,--physical
跳過所有符號連結,包括符號連結檔案。
--version
輸出setfacl的版本號並退出。
--help
輸出幫助資訊。
首先看下file檔案的許可權:
所有者所屬組均為root,系統中的使用者預設為rw,其他人可讀。
現在讓小明可以rw,rehat使用者沒有任何許可權,其他人也沒有任何許可權。
其他人沒許可權:
Redhat使用者沒許可權:
測試下: