天天看點

linux 特殊權限chattr(檔案系統級别的權限) Attr 權限和 ACL通路控制清單 ...

Attr 權限 和 ACL 通路控制清單

  • Attr 權限裡的 “a” 權限和 “i” 權限
a :全名append only    
   隻允許追加資料,不允許任何使用者改動檔案(超級使用者也不行) 
   甚至不能正常的删除檔案
   隻能讀取檔案内容,隻能用 “echo” 追加内容
   chattr +a xxx  #增加 a 權限
   chattr -a xxx  #取消 a 權限
   lsattr   #檢視權限           
[root@deng-120 /test]# touch abc    #自行建立一個 abc 檔案
[root@deng-120 /test]# chattr +a abc/   #給 abc 加上 “a” 權限
[root@deng-120 /test]# lsattr       #檢視 “a” 權限
-----a---------- ./abc      
[root@deng-120 /test]# echo "hello" >> abc  #可用“echo”把内容追加到 abc 檔案中
[root@deng-120 /test]# vim abc      #編輯檔案            

abc儲存退出的時候會發現無法儲存,隻能退出不做修改;表示 “a” 權限隻能對檔案的追加而不能進行修改

linux 特殊權限chattr(檔案系統級别的權限) Attr 權限和 ACL通路控制清單 ...
i :全名immutable  
    不允許對這個檔案進行任何的修改(超級使用者也不行)
    不能正常的删除檔案
    隻能讀取檔案内容,不能用 “echo” 追加内容
    chattr +i xxx  #增加 i 權限
    chattr -i xxx  #取消 i 權限
    lsattr  #檢視權限           
[root@deng-120 /test]# chattr +i abc    #給 abc 加上 “i” 權限
[root@deng-120 /test]# lsattr       #檢視 “i” 權限
----i----------- ./abc
[root@deng-120 /test]# echo "hello" >> abc  #用“echo”把内容追加到 abc 檔案中
-bash: abc: 權限不夠                   

權限不夠,表示 “i” 權限的特性就是不允許做任何的修改删除,隻能讀取

  • ACL:通路控制清單
-m   設定一個ACL權限
-x   取消一個ACL權限
-b   清除所有的 ACL 權限           
[root@deng-120 /test]# setfacl -m u:rosen1:rw- /test/abc    # rosen1 讀和寫權限
[root@deng-120 /test]# setfacl -m u:rosen2:--- /test/abc    # rosen2 沒有任何權限
[root@deng-120 /test]# chown zhang3 abc     #修改所有者為zhang3
[root@deng-120 /]# getfacl /test/abc 
# file: test/abc    #檔案所在的路徑
# owner: zhang3     #檔案附加所有者
# group: root       #檔案所屬組
user::rw-           #使用者權限
user:rosen1:rw-     # rosen1 讀和寫權限
user:rosen2:---     # rosen2 沒有任何權限
group::r--          #使用者所屬組權限
mask::rw-           #除了 root 集體控制附加所有者的最大權限
other::r--          #其他人隻讀權限           
修改 “mask” 值: setfacl  -m  m:rwx /test/abc