2021-05-12 14:32:11
Linux基礎教學:Linux許可權管理
許可權管理是Linux中一個十分重要的概念,也是系統安全性的重要保障。
一、基本許可權
使用者對檔案擁有所有者,所屬組和其他人三個身份,每個身份都有讀寫執行三個許可權。
-rw-r--r--:第一個"-"位置是代表檔案型別的。
檔案許可權前的第一個字母用來標識檔案型別:
-:一般檔案
d:目錄檔案
b:塊裝置檔案
c:字元裝置檔案
l:連結檔案
p:人工管道
常見的為-,d,I
rw- r-- r-- :檔案許可權
u g o
u所有者,g所屬組,o其他人
r讀 w寫 x執行 -不具有許可權
8進位制數值表示方法
r:4
w:2
x: 1
如:-rw- r-- r--的意思就是這個檔案的型別是一般檔案,檔案本身所在的使用者可讀可寫不可執行,所在的組可讀,不可寫不可執行,其他使用者可讀,不可寫不可執行。
許可權管理命令
chmod 改變檔案或目錄許可權
英語原意:change the permissions mode of a file
語法:1、chmod【ugoa】【+-=】【rwx】【檔案或目錄】
執行許可權:檔案所有者和root使用者
2、許可權的數位表示
chmod 【421】【檔案或目錄】
r——4
w——2
x——1
chown 更該檔案或目錄的所有者
英語原意:chamge file ownership
執行許可權:root
語法:chown 【使用者】【檔案或目錄】
chgrp 改變檔案或目錄的所屬組
英語原意:change file froup ownnership
執行許可權:root
語法:chgrp【使用者組】【檔案或目錄】
二、預設許可權
umask 顯示、設定檔案的預設許可權
英語原意:the user file-creation mask
語法:umask【選項】
執行許可權:root
-S 以rwx形式顯示新建檔案預設許可權
看到目錄預設的許可權和umask -S的許可權一致,touch的許可權每位比umask -S顯示的許可權少一個x許可權,在linux會把任何一個新建的檔案的可執行許可權去掉(基於安全性考慮),所以也是和umask -S的許可權是一樣的
直接輸入umask,得到0022,第一個0是特殊許可權,後三位代表正常許可權,表示擁有者,所屬組,其他使用者,但其實真正的許可權是777-022=755,所以是rwxr-xr-x
設定預設許可權為754,應由777-754=023
umask 023,但不建議更改,預設的許可權是比較合理的
三、ACL許可權
有時候,所有者,所屬組,其他人三個身份的許可權是770,假如想要某一個使用者的身份為5,那麼這些身份許可權就滿足不了要求了,就要使用到ACL許可權了。
ACL許可權
需要檔案所在的分割區支援ACL許可權
檢視分割區ACL許可權是否開啟
dumpe2fs -h /dev/sda3
dumpe2fs命令是查詢指定分割區詳細檔案系統資訊額命令
-h 僅顯示超級塊中資訊,而不顯示磁碟塊組的詳細資訊
df 檢視分割區使用狀況,檢視到/為/dev/sda3
預設掛載選項,支援ACL,預設都開啟了ACL。
若沒有開啟
臨時開啟分割區ACL許可權
mount -o remount,acl/ 重新掛載跟分割區,並掛載加入acl許可權
永久開啟分割區ACL許可權
vim /etc/fstab 是系統開機自動掛載檔案
在defaults後加,acl,重新啟動系統或重新掛載檔案系統就可以了,當然,在預設的情況下,本身就支援acl的。
檢視與設定acl許可權
getacle 檔名 檢視acl許可權
setfacl 【選項】 檔名 設定ACL許可權
-m 設定ACL許可權
-x 刪除指定的ACL許可權
-b 刪除所有的ACL許可權
-d 設定預設ACL許可權
-k 刪除預設ACL許可權
-R 遞回設定ACL許可權
setfacl -m u:test:rx //root/wt/ u/g
為給使用者/組分配acl,test為使用者名稱,rx為寫執行許可權,/root/wt為檔名)
可以看到,許可權後面多了個+號,然後使用getfacl檢視acl許可權,可以看到user:test:r-x
最大有效ACL許可權與刪除ACL許可權
mask是用來指定最大有效許可權的。如果我給使用者賦予了ACL許可權,是需要和mask的許可權“相與”才能得到使用者的真正許可權。
相與就是邏輯運算兩個都為真才為真,如user的讀r許可權和mask的讀r許可權相與為讀許可權,若其中任何一個為-許可權,則結果就為-許可權。
上面用setfacl -m u來指定使用者,用m來指定mask的許可權
當然,mask設定成了rwx許可權,任何許可權與他相與,都是本身,所以預設的mask許可權是合理的。
刪除ACL許可權
setfacl -x u:使用者名稱 檔名 刪除指定使用者的ACL許可權
setfacl -b 檔名 刪除檔案的所有的ACL許可權
預設ACL許可權和遞回ACL許可權
遞回ACL許可權:遞回是父目錄在設定ACL許可權時,所有的子檔案和子目錄也會擁有相同的ACL許可權。之前所說的命令,也有遞迴的概念,比如mkdir和rm的時候。
setfacl -m u:使用者名稱:許可權 -R檔名
但是新建的檔案不是擁有ACL許可權。
預設ACL許可權
預設ACL許可權的作用是如果給父目錄設定了預設ACL許可權,那麼父目錄中所有新建的子檔案都會繼承父目錄的ACL許可權。
setfacl -m d:u:使用者名稱:許可權 檔名
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2016-09/135076p2.htm
相關文章