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 11:45
下一篇 2017-07-27 20:44

相關推薦

  • 網絡班26期-第1周課程作業

    1、描述計算機的組成及其功能? (1)CPU:計算機的大腦,計算機的運算,命令的控制功能,寄存器及緩存都由CPU功能承擔; (2)內存:RAM,隨機訪問存儲器,計算機的另一個核心功能,系統指令存放及運行的基礎。 (3)輸入設備:人工給計算機下指令的設備,例如鼠標,鍵盤等; (4)輸出設備:計算機輸出人工輸入的執行命令的結果;例如,音響,顯示屏等; …

    Linux干貨 2017-01-10
  • Linux 基礎知識(六.三)

    按找下列要求,寫一個腳本 (1)創建目錄/tmp/testdir-當前日期時間 (2)在此目錄創建100個空文件:file1-file100 (3)顯示/etc/passwd文件中位于偶數行的用戶的用戶名 (4)創建10個用戶:user10-user19,密碼同用戶名 (5)在/tmp創建10個空文件file10-file19 腳本如下: #!/bin/ba…

    Linux干貨 2016-11-14
  • linux全方位掌握一個命令–思路比方法更重要

    Linux命令眾多,當不清楚一個命令的使用方法時,我們該怎樣了解命令的屬性和幫助? 1.  用type命令了解一個命令的屬性 [root@zejin240 testdir]# type cdcd is a shell builtin[root@zejin240 testdir]# type rmrm is aliased to `rm -i&#03…

    Linux干貨 2016-10-30
  • 一切皆文件

    Linux Linux內一切皆文件;表現之一:硬件設備也通過文件表示 物理終端:/dev/console 虛擬終端: /dev/tty#[1,6] 串行終端:/dev/ttyS# 偽終端: /dev/pts/# 注意:在啟動設備之后,在其上關聯一個用戶接口程序,即可實現與用戶交互,交互式程序有兩類:GUI(圖形化界面)和CLI(命令行界面)。 查看終端設備:…

    Linux干貨 2017-04-01
  • awk應用和systemd

    一:練習 1、求每班總成績和平均成績 name class score wang   1    100 zhang  2    90 li     1    80 2、為編譯安裝的httpd服務,實現service unit文件 3、破解centos7 口令 …

    Linux干貨 2016-09-22
欧美性久久久久