網頁

2013年3月23日 星期六

POSIX ACL權限系統及其管理命令


  • POSIX是protable Operating System Interface的縮寫,含義是移植操作系統接口。POSIX ACL權限在linux的內核2.6版之後就正式支持了,一般的文件系統ext2,ext3,JFS等都支持POSIX ACL。
  • POSIX ACL仍然使用傳統權限中的讀寫、執行作為管理的核心,不同的是可以為文件增加多個用戶或組的權限細則 。為文件增加acl權限可以使用setfacl命令,而getfacl命令是取得文件的posix ACL的權限清冊。
    • ACL權限管理命令setfacl
      • setfacl命令主要用於增加、刪除acl權限。與傳統文件權限管理的命令一樣,只有root用戶和文件屬主才能畢setfacl命令。
        • 命令格式
          • setfacl [option] 權限表達式 文件名
            • 常用的option
              • b:刪除所有擴展ACL權限
              • k:刪除default的ACL權限
              • d:設定default的ACL權限
              • R:遞迴的設置目錄及目錄中的所有文件
              • m:修改、增加已有的ACL權限
            • 設定acl權限時的權限表達式與chmod的權限表達式是不同的。其ACL的權限表達式基本格式
              • [對象類型]:[對象]:[權限列表]
                • 對象類型:可以使用的對象類型有4種。
                  • u:使用者/用戶
                  • g:群組
                  • m:表示ACL權限的安全值
                  • o:其他用戶
                • 對象:當然就是用戶或組的名稱
                • 權限:以w,r,x的組合
              • 如果一條指令中要使用多個權限表達式,可以使用","將這些權限表達式分隔開。
          • 範例:
            • setfacl -m u:canred:rw a.txt
              • 設定用戶canred 可讀可寫 a.txt的文件
    • getfacl指令用來查看acl權限。
      • 使用getfacl命令查看文件的acl權限時,通常不需要使用任何選項,直接將要查看的文件作為其參數即可
        • 範例:
          • getfacl a.txt
    • 文件系統可能default不支持acl,可以通過重新掛載的方式,讓這些文件系統支持acl,命令為mount -o remonut,acl /dev/sda3。
    • ACL權限列表中還有一個特殊的條目,其對象類型為mask,其主要作用是限制ACL條目的最大權限,當設置的acl權限超過權限上限時,超過的權限將會被系統屏蔽
      • setfacl -m m::r,g:admin:rwx aFolder
    • 刪除acl權限
      • setfacl -b aFolder
    • 遞迴的增加ACL權限
      • setfacl -Rm u:canred:rw,g:admin:rw test
    • 預設ACL權限
      • setfacl -dm u:canred:rw,g:admin:rw file
        • 上面的命令為目錄設置了預設的acl權限,在目錄中建立的新文件將會自動繼承預設的acl權限。
    • 刪除預設acl權限
      • setfacl -k file

沒有留言:

張貼留言