文件的權限詳解(二)ACL篇

文件的權限詳解(二)ACL篇

ACL訪問控制列表作用

1、 ACL:Access Control List,實現靈活的權限管理
2、 除了文件的所有者,所屬組和其它人,可以對更多的用戶設置權限
3、 CentOS7.0默認創建的xfs和ext4文件系統有ACL功能。
4、 CentOS7.X之前版本,默認手工創建的ext4文件系統無ACL功能。需手動增加:

tune2fs –o acl /dev/sdb1
mount –o acl /dev/sdb1  /mnt

5、 ACL生效順序:所有者,自定義用戶,自定義組,其他人

 ACL使用兩個命令來對其進行控制

 getfacl:取得某個文件/目錄的ACL設置項目
 setfacl:設置某個文件/目錄的ACL設置項目

setfacl命令

作用:設置文件訪問控制列表的命令
語 法:
格 式1:setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] file…
格 式2:setfacl  –restore=file

參 數:

  • -m設置后續acl參數

    setfacl  -m u:wang:rwx file|directory  設置wang用戶對文件或目錄具有讀寫執行權限
    setfacl  -m g:salesgroup:rw file| directory  設置組用戶對文件或目錄的讀寫執行權限
  • -x刪除后續acl參數

         setfacl  -x u:wang file |directory  刪除wang用戶對文件的訪問限制
  • b,–remove-all:刪除所有擴展的acl規則,基本的acl規則(所有者,群組,其他)將被保留。

                setfacl -b file1清除所有ACL權限
  • k,–remove-default:刪除缺省的acl規則。如果沒有缺省規則,將不提示。

     setfacl -k dir 刪除默認ACL權限
  • m重新計算有效權限,即使ACL mask被明確指定。

  • d,--default:設定默認的acl規則;以后這個目錄下創建的文件都將具有此權限

        setfacl  -m d:u:wang:rx directory
  • -R,–recursive:遞歸的對目前該目錄下所有文件及目錄進行操作。

        setfacl  -Rm g:sales:rwX directory
  • –  getfacl file1 | setfacl –set-file=- file2  復制file1的acl權限給file2

  • –restore=file:從文件恢復備份的acl規則(這些文件可由getfacl -R產生)。通過這種機制可以恢復整個目錄樹的acl規則。此參數不能和除–test以外的任何參數一同執行

-n      ,–no-mask:不要重新計算有效權限。setfacl默認會重新計算ACL mask,除非mask被明確的制定。
-L      ,–logical:跟蹤符號鏈接,默認情況下只跟蹤符號鏈接文件,跳過符號鏈接目錄。
-P      ,–physical:跳過所有符號鏈接,包括符號鏈接文件。
–test    :測試模式,不會改變任何文件的acl規則,操作后的acl規格將被列出。


    標識命令行參數結束,其后的所有參數都將被認為是文件名。

    如果文件名是-,則setfacl將從標準輸入讀取文件名。

其他:

以文本文件方式批量設置acl權限 -M

[root@localhost qiuzhaoxian]# cat acl.test 
u:qzx:---
u:user1:rwx
u:user2:r
u:user3:7
g:gentoo:0
g:user4:rx
[root@localhost qiuzhaoxian]# setfacl -M acl.test 123
[root@localhost qiuzhaoxian]# getfacl 123
# file: 123
# owner: xiaoming
# group: xiaoming
user::rwx
user:qzx:---
user:user1:rwx
user:user2:r--
user:user3:rwx
group::rwx
group:user4:r-x
group:gentoo:---
mask::rwx
other::---

– X 以文本方式批量刪除文件acl(本來有刪除對應的acl權限)acl權限

[root@localhost qiuzhaoxian]# cat bbb.test 
u:user1
u:user2
u:user3
[root@localhost qiuzhaoxian]# setfacl -X bbb.test 123
[root@localhost qiuzhaoxian]# getfacl 123
# file: 123
# owner: xiaoming
# group: xiaoming
user::rwx
user:qzx:---
group::rwx
group:user4:r-x
group:gentoo:---
mask::rwx
other::---

以參考文件的acl權限設置目標文件

[root@localhost qiuzhaoxian]# mkdir 456
[root@localhost qiuzhaoxian]# getfacl 123 | setfacl --set-file=- 456
[root@localhost qiuzhaoxian]# getfacl 456
# file: 456
# owner: root
# group: root
user::rwx
user:qzx:---
group::rwx
group:user4:r-x
group:gentoo:---
mask::rwx
other::---

注:setfacl –set-file= 這里的=后邊的-表示從標準輸入讀取文件
這里的- 可以換成文件(當備份恢復時用)

–set選項會把原有的ACL項都刪除,用新的替代,需要注意的
是一定要包含UGO的設置,不能象-m一樣只是添加ACL就可以.
如:
 setfacl –set u : : rw , u : qzx: rw , g : : r , o::- file1

備份和恢復ACL

#getfacl -R /tmp/dir1 > acl.txt#setfacl -R -b /tmp/dir1
#setfacl -R  --set-file=acl.txt /tmp/dir1#getfacl -R /tmp/dir1

關于mask

mask只影響除所有者和other的之外的人和組的最大權限
Mask需要與用戶的權限進行邏輯與運算后,才能變成有限的權限

一旦設置acl mask后 所屬組權限就變成mask權限
也就是說用chmod g=wx  文件  那么mask也將編程wx

用戶或組的設置必須存在于mask權限設定范圍內才會生效。
設置方式

setfacl -m mask::rx file

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

(0)
qzxqzx
上一篇 2016-08-05 16:09
下一篇 2016-08-05 16:09

相關推薦

  • N22-第二周作業-對Linux的基礎操作命令的理解及用法示例

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 Linux上文件管理類命令常用的有:pwd、ls、cd、cp、touch、mv、rm、rmdir   1)pwd:顯示當前工作目錄     2)ls:列出指定目錄下的內容    常用的選項有:   -a:列出目錄中的所有文…

    Linux干貨 2016-08-22
  • 軟件包管理

    軟件運行與編譯過程:程序源代碼——預處理——-編譯——-匯編——-鏈接 靜態編譯:.a 動態編譯:.so 二進制程序的組成:二進制文件、庫文件、配置文件、幫助文件。 包的命名:1、源代碼:name -VERSION.tar.gz或bz2或xz   &nb…

    Linux干貨 2017-04-23
  • Linux簡述

    計算機誕生                                                  …

    2017-03-18
  • 關于Linux文件系統的的簡單理解和認識-20160730

    關于Linux文件系統的的簡單理解和認識 關于文件系統的運作,這與操作系統帶的檔案數據有關。例如Linux操作系統的檔案權限(rwx)與文件屬性(擁有者,群組,時間參數等)。文件系統通常會將這兩部分的數據分別存放在不同的區塊,權限與屬性放置到inode中,至于實際數據則放置到date block區塊中,另外,還有一個超級塊區(super block)會記錄整…

    Linux干貨 2016-08-04
  • 基于Python和MoviePy庫實現數據的動態展示

    基于Python和MoviePy庫實現數據的動態展示 (翻譯:以馬內利)  原文鏈接:Data Animations With Python and MoviePy   Python擁有很多實現數據可視化的庫,但是很少可以展示GIFs的動態視圖。 這篇博客主要介紹怎樣使用MoviePy庫作為一個其他可視化庫的通用插件。 Movi…

    2015-03-26
  • System作業

    1、求每班總成績和平均成績 [root@Centos7 bin]# awk '!/^name/{a[$2]++;b[$2]+=$3}END{for(i in a){print i,b[i],b[i]/a[i]}}' f1 4 100 50 5&nbs…

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