ACL實現靈活的權限管理

ACL實現靈活的權限管理

除了文件的所有者,所屬組和其它人,可以對更多的用戶設置權限

CentOS7當中,無論是操作系統安裝時還是之后手工創建的文件系統(xfs、ext4)均會開啟ACL功能。

CentOS6及之前的版本,僅操作系統安裝時創建的文件系統才會默認開啟ACL,手工創建的文件系統,需要手工開啟ACL功能。

mount -o acl /dev/sda7  取消的方式,重新掛載時不指定即可

tune2fs -o acl /dev/sda7 取消的方式 tune2fs -o ^acl /dev/sda7

 

ACL權限判斷的順序

先判斷是否是文件的OWNER,如果是,則執行OWNER的權限后結束,如果不是OWNER,則判斷是否是ACLUSER,如果是則執行USER權限后結束,如果不是ACLUSER, 則判斷是否屬于GROUPACL GROUP,如果是,則取最大權限。如果不屬于任何GROUP,則執行OTHER。

所有人->ACLuser>所有組和ACLgroup->其他人

ACL實現靈活的權限管理

將文件f1的所屬人權限改為,將文件f1 ACL里的user :liubei權限設為rwx,切換到liubei用戶下,此時該用戶對f1文件啥都不能做,說明文件的ower權限大于ACLuser權限。

ACL實現靈活的權限管理

將文件f1 acluser:guanyu的權限設為,將acl里的group:guanyu的權限設為rw-,進入guanyu用戶下,此時不能查看修改文件f1,所以acluser權限大于group權限。

ACL實現靈活的權限管理

文件f1的組權限為aclgroupguanyu的權限為rwx,切換到guanyu用戶下,能查看修改執行文件

ACL實現靈活的權限管理

文件f1組權限為rwx,aclgroup:guanyu權限為rw-,切換到guanyu用戶下,此時能執行文件。

所以如果不是ACLUSER, 則判斷是否屬于GROUPACL GROUP,如果是,則取最大權限。

 

為多用戶或者組的文件和目錄賦予訪問權限rwx:

setfacl -m u:liubei:— f1  設置ACL USER

setfacl -m g:shuguo:rwx f1  設置ACL GROUP

setfacl -M acl.txt f1[dir1](將一個文件的ACL,導入到另一個文件中)

acl.txt 內容來自getfacl f1 > acl.txt,如下

# file: fstab

# owner: root

# group: root

user::rw-

user:zhangfei:rwx

group::r–

mask::rwx

other::r–

ACL實現靈活的權限管理

setfacl -Rm u:zhangfei:rwx acltest/   遞歸設置

setfacl -m mask:rwx f1 設置mask的權限

chmod g=rwx f1 一旦設置了ACL權限后,原有的文件GROUP不可再更改,使用chmod g=即修改ACL MASK(用ll命令顯示的文件組權限變為mask

ACL MASK隨著新的ACL設置會被重置,重置的標準是讓該文件上的所有ACL及文件原GROUP上的權限都有效。

ACL實現靈活的權限管理

給文件f1的組權限設成rwx,但文件f1 ACL里組權限還是原本的rw-,而mask權限變為rwx,切換到guanyu用戶下,執行文件f1,權限被拒絕。

ACL實現靈活的權限管理

原本文件f1 ACLmask權限為rwx,當把文件組權限改為時,可以發現組權限并沒有發生變化,而mask權限變為,所以當文件設置了ACL權限后,原有的文件GROUP不可再更改,使用chmod g=即修改ACL MASK。

ACL實現靈活的權限管理

mask權限為時,ACL中的user權限和group權限都會受到作用(除了owner,mask權限會約束到ACLusergroup權限,兩者(maskACL USERmaskACL group)權限取并集。

最好最后設置mask,是為了保障每一條ACL都能夠生效。

 

setfacl -x u:liubei f1  單獨去除一條ACL權限

setfacl -X aclrm.txt f1[ f2 f3 *](批量刪除ACL:先創建一個文件在里面寫入你所要刪除的ACL,格式如下圖)

aclrm.txt 內容如下

u:liubei

g:shuguo

ACL實現靈活的權限管理

setfacl -b f1 去除該文件上ACL屬性(文件中mask也被刪掉了)。

setfacl -m d:u:guanyu:rwx dir1  設置ACL默認權限,僅影響新創建的文件及目錄,不影響當前。

ACL實現靈活的權限管理

 

ACL實現靈活的權限管理

此時進入guanyu用戶下,進入/app/acltest/dir1,但是不能創建文件,說明guanyu用戶是以其他身份來訪問dir1目錄的。

ACL實現靈活的權限管理

回到root用戶下,發現之后在dir1中創建的文件和目錄都默認有ACL屬性。

ACL實現靈活的權限管理

再切到guanyu用戶下,進入dir1123目錄中,發現能夠創建文件了,而且文件也有默認ACL屬性。說明guanyu用戶此時擁有 setfacl -m d u:guanyu:rwx dir1 命令新增加acl user的權限,也說明該命令對當前目錄不會生效,對子目錄以下的有效。

setfacl -m u:guanyu:rwx dir1(setfacl -m d u:guanyu:rwx dir1 后面再敲setfacl -m u:guanyu:rwx dir1(兩者順序可以顛倒)就可以在當前目錄也生效)

setfacl -x d:sunquan d11 刪除一條默認權限

setfacl -k d1 刪除全部默認權限

setfacl -b d1 刪除ACL屬性

 

備份和恢復ACL

getfacl -R /tmp/dir1 > acl.txt  將目錄下的所有文件的ACL屬性備份到文件

setfacl -R -b /tmp/dir1 清除目錄下所有文件的ACL屬性

setfacl -R –set-file=acl.txt /tmp/dir1   通過文件還原ACL屬性的方法1

setfacl –restore acl.txt    通過文件還原ACL屬性的方法2

 

 

原創文章,作者:fuming,如若轉載,請注明出處:http://www.www58058.com/82811

(0)
fumingfuming
上一篇 2017-07-27
下一篇 2017-07-27

相關推薦

  • 8-16 Shell腳本之循環

    本節主要講解Shell腳本的循環和軟件包的管理 一、用until實現下列作業 1、每隔3秒鐘到系統上獲取已經登錄的用戶的信息;如果發現用戶hacker登錄,則將登錄時間和主機記錄于日志/var/log/login.log中,并提示該用戶退出系統。 2、隨機生成10以內的數字,實現猜字游戲,提示比較大或小,相等則退出 3、編寫腳本,求100以內所有正整數之和 …

    Linux干貨 2016-08-18
  • Ansible中文權威

    福利貼 運維神器 Ansible 本土化在際,除了每日分享,定期更新外,還有大蝦不定期解惑,更多福利可關注  http://www.www58058.com/doc/ansible/  或 掃描二維碼入( 372011984 )群關注.

    Linux干貨 2015-08-13
  • bash變量之位置參數變量

        什么是變量     變量是 bash 環境中非常重要的一個玩意兒,就是讓某一個特定字串代表不固定的內容就是了,講的更簡單一點,我們可以“用一個簡單的 "字眼" 來取代另一個比較復雜或者是容易變動的數據”。    &nbsp…

    Linux干貨 2016-08-15
  • 無痛之ext3升ext4[原創]

    一臺文件存儲服務器單目錄下子目錄已經突破31998數限制,造成無法繼續創建子目錄,服務器系統環境為CentOS5.4 內核版本為2.6.18。解決方案只能是升級到ext4文件系統,首先到https://ext4.wiki.kernel.org/index.php/Ext4_Howto查了一下資料,文中的第一句便是“Ext4 was released as a…

    Linux干貨 2015-03-27
  • CentOS6.8編譯安裝—- php-fpm

    安裝環境: [root@station11 ~]# lsb_release -a Distributor ID: CentOS Description:     CentOS release 6.8 (Final) Release:  6.8 Codename:    …

    Linux干貨 2016-12-21
  • Haproxy+Keepalived+Varnish+LAMP+Memcacked+NFS 實現WordPress站點的動靜分離

    詳細說明,請點擊CSDN博客的連接地址:http://blog.csdn.net/yhy1271927580/article/details/70195158

    2017-04-16
欧美性久久久久