首頁 > 軟體

Linux基礎教學:Linux許可權管理

2020-06-16 17:33:49

許可權管理是Linux中一個十分重要的概念,也是系統安全性的重要保障。

一、基本許可權

使用者對檔案擁有所有者,所屬組和其他人三個身份,每個身份都有讀寫執行三個許可權。

-rw-r--r--:第一個"-"位置是代表檔案型別的。

 

檔案許可權前的第一個字母用來標識檔案型別:

-:一般檔案

d:目錄檔案

b:塊裝置檔案

c:字元裝置檔案

l:連結檔案

p:人工管道

常見的為-dI

rw-  r--  r-- :檔案許可權

u    g   o

u所有者,g所屬組,o其他人

rwx執行 -不具有許可權

8進位制數值表示方法

  r:4          

  w:2      

  x: 1 

如:-rw- r-- r--的意思就是這個檔案的型別是一般檔案,檔案本身所在的使用者可讀可寫不可執行,所在的組可讀,不可寫不可執行,其他使用者可讀,不可寫不可執行。

許可權管理命令

chmod  改變檔案或目錄許可權

英語原意:change the permissions mode of a file

語法:1chmodugoa】【+-=】【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

為給使用者/組分配acltest為使用者名稱,rx為寫執行許可權,/root/wt為檔名)

可以看到,許可權後面多了個+號,然後使用getfacl檢視acl許可權,可以看到usertestr-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許可權。之前所說的命令,也有遞迴的概念,比如mkdirrm的時候。

setfacl -m u:使用者名稱:許可權 -R檔名

但是新建的檔案不是擁有ACL許可權。

預設ACL許可權

預設ACL許可權的作用是如果給父目錄設定了預設ACL許可權,那麼父目錄中所有新建的子檔案都會繼承父目錄的ACL許可權。

setfacl -m d:u:使用者名稱:許可權 檔名

更多詳情見請繼續閱讀下一頁的精彩內容http://www.linuxidc.com/Linux/2016-09/135076p2.htm


IT145.com E-mail:sddin#qq.com