ACL權限管理練習

ACL簡介;
權限管理練習

在學習了用戶、組和文件對應的User、Group、Others三類用戶以及操作權限Excute、Write和Read后我們知道了在文件或文件夾上我們可以分別對三類用戶設置不同的權限。
舉個例子:

/home/guanyu目錄下的4.txt文件

-rwxrw-r–. 1 guanyu shu 7 Aug 30 10:52 4.txt

User:guanyu擁有rwx權限,
Group:shu組用戶擁有rw權限;
Others:其他用戶擁有r權限。
如果現在Rockets用戶James需要對4.txt取得rw權限,我們會想到以下幾種辦法:
1. 給文件的other類別增加讀和寫的權限. 這樣由于James會被歸為other類別,那么
他也將擁有rw權限。
2. 將James加入到shu group. 那么James會被歸為group類別,那么他將擁有讀寫的權限。
3. 設置suid, 使James能夠以guanyu的身份對4.txt進行操作,從而獲得rw權限。

第一種做法的問題在于所有用戶都將對4.txt擁有讀寫操作,顯然這種做法不可取。
第二種做法的問題在于James被賦予了過多的權限.所有屬于shu組的文件,James都可以擁
有其等同的權限了。
第三種做法雖然可以達到只限定James用戶一人擁有對4.txt文件的rw權限.但是需要
對sudoers文件進行嚴格的格式控制. 而且當文件數量和用戶很多的時候,這種方法就相當地不靈活了。為了方便讓某些其他用戶獲得權限,我們可以單獨設置一種權限管理叫ACL。

一、Access Control List (ACL)接入控制列表簡介

簡單地來說,ACL就是可以設置特定用戶或者用戶組對于一個文件/文件夾的操作權限。ACL 是由一系列的Access Entry所組成的,每一條Access Entry定義了特定的類別可以對文件擁有的操作權限。Access Entry有三個組成部分:Entry tag type,qualifier(optional),權限。
在下面的例子中,Entry tag type , qualifier(optional)u:James,權限rw。

[root@h(Brad) guanyu]# setfacl -m u:James:rw 4.txt
[root@h(Brad) guanyu]#getfacl 4.txt
# file: 4.txt
# owner: root
# group: root
user::rwx
user:James:rw-
group::rw-
mask::rw-
other::r--

需要掌握的命令也只有三個: getfacl, setfacl, chacl。

二、安裝準備、

1.查看ACL安裝情況。使用rpm命令,檢查系統已經安裝acl。

[root@h(Brad) ~]#rpm -qa acl
acl-2.2.49-7.el6.x86_64

2.使用vim編輯/etc/fstab在 /目錄 標簽default后面添加acl標簽。

[root@h(Brad) ~]#vim /etc/fstab
#
# /etc/fstab
Created by anaconda on Mon Aug 28 17:08:51 2017
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=2f1009b9-8157-4711-b605-f8bec7ae0ed6 / ext4 defaults,acl 1 1
UUID=77d9e29e-26d1-440d-a5ed-aa2929977787 /app ext4 defaults 1 2
UUID=8a3fdf1e-c41c-4fe3-ab8f-4269f1532c93 /boot ext4 defaults 1 2
UUID=fb7024d6-6cbc-4b1f-b543-e1637223a20f swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
"/etc/fstab" 16L, 899C written

3.在啟用了acl參數之后重新加載/data分區,出現下面的信息代表分區的acl功能已經正常加載。

[root@h(Brad) ~]#mount -o remount /
[root@h(Brad) ~]#cat /etc/mtab |grep /
/dev/sda5 / ext4 rw,acl 0 0

三、操作

1.操作步驟:
1)查看文件權限狀態;
2)用戶James對4.txt有rw權限;
3)用戶組Rockets對4.txt有r權限;
4)設置mask為x;
5)刪除4.txt的acl設定,還原成文件的原來權限。

2.操作:
在這里我們用的的命令有
getfacl:查看文件/目錄的ACL設定內容
-c過濾文件ugo權限。
setfacl:設置文件/目錄的ACL內容
語法:setfacl [-bkRd] [{-m|-x} acl參數] 文件名
-m :設置后續的acl參數
-x :刪除后續的acl參數
-b :刪除所有的ACL設定參數
-R :遞歸設置acl參數
-d :設置預設的acl參數(只對目錄有效,在該目錄新建的文件也會使用此ACL默認值)
-k :刪除預設的ACL參數
1)查看4.txt權限狀態。

[root@h(Brad) guanyu]#ll 4.txt
-rwxrw—-. 1 root root 237 Sep 1 07:06 4.txt
[root@h(Brad) guanyu]#getfacl 4.txt
# file: 4.txt
# owner: root
# group: root
user::rwx
group::rw-
other::r–

2)讓用戶James對4.txt有rw權限

[root@h(Brad) guanyu]#setfacl -m u:James:rw 4.txt
[root@h(Brad) guanyu]#ll 4.txt
-rwxrw—-+ 1 root root 237 Sep 1 07:06 4.txt
[root@h(Brad) guanyu]#getfacl 4.txt
# file: 4.txt
# owner: root
# group: root
user::rwx
user:James:rw-
group::r–
mask::rw-
other::—

這時我們就可以看到James用戶在ACL里面已經擁有了對文件的讀寫權限.在文件權限的最后多了一個+號。當任何一個文件擁有了ACL_USER或者ACL_GROUP的值以后我們就可以稱它為ACL文件.這個+號就是用來提示我們的。
特別強調如果文件有ACL_MASK值,那么文件權限標識中第二組rw-代表的就是mask值而不再是group 權限了。
當一個文件擁有了ACL_USER或者ACL_GROUP的值時ACL_MASK同時也會被定義,user和group的acl設置了mask的最大值。

3)用戶組Rockets對4.txt有r權限;

[root@h(Brad) guanyu]#setfacl -m g:Rockets:r 4.txt
[root@h(Brad) guanyu]#getfacl -c 4.txt
user::rwx
user:James:rw-
group::rw-
group:Rockets:r–
mask::rw-
other::r–

在設置了ACL之后,再設置mask,acl內容和group權限就會被影響。mask的作用是讓用戶/組對某個文件只有某些權限。mask只對其他用戶和組的權限有影響,而對owner和other的權限是沒有任何影響的。在下面的例子中因為設置了mask即acl用戶、用戶組和acl組權限的上限為–x,所以在他們的權限信息后面多了#effectiv,除了x權限其他都被限制。

4) 設置mask為x;

[root@h(Brad) guanyu]#setfacl -m mask:x 4.txt
[root@h(Brad) guanyu]#ll 4.txt
-rwx–xr–+ 1 root root 237 Sep 1 07:06 4.txt
[root@h(Brad) guanyu]#getfacl 4.txt
# file: 4.txt
# owner: root
# group: root
user::rwx
user:James:rw- #effective:—
group::rw- #effective:—
group:Rockets:r– #effective:—
mask::–x
other::r–

5)刪除4.txt的acl設定還原成文件的原來權限。

[root@h(Brad) guanyu]#setfacl -b 4.txt
[root@h(Brad) guanyu]#ll 4.txt
-rwx—r–. 1 root root 237 Sep 1 07:06 4.txt

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/86885

(1)
manbinnmanbinn
上一篇 2017-09-11 08:20
下一篇 2017-09-11 11:18

相關推薦

  • Linux目錄結構

    Linux目錄結構 查看目錄(/) 樹狀目錄結構: 常見目錄的解釋 Linux 下的文件類型 路徑 Linux目錄結構 查看目錄(/) 登錄系統后,在當前命令窗口下輸入命令: [root@localhost ~]# ls /bin   dev  home  lib64       media &nb…

    Linux干貨 2016-09-06
  • Linux的用戶組和權限(二)

      一、1.passwd 設置密碼(類似usermod的用法)       passwd[OPTIONS] UserName:          修改指定用戶的密碼,僅root用戶有權限       …

    Linux干貨 2016-08-08
  • linux命令速記技巧

    linux命令速記技巧 linux命令有一定的命名規則,一個正常的coder在編碼的過程中都會考慮命名的語義化,開發者對函數的命名一定也盡量遵循這個規律.了解目錄所對應的英文全稱有助于自己的記憶,理解記憶獲得知識的留存率要遠大于死記硬背.如果英文基礎太差,小編建議先學好英文基本功再來學習這些命令. 命令的中文對照 命令 英文全稱 中文釋義 ls list 列…

    Linux干貨 2017-03-25
  • 使用ssh比較慢的小結

    1)情況說明 a、ping ip,響應正常 b、telnet ip,響應正常 c、ssh ip,響應慢,但是等很大會后還是能打開 2)處理方法 方法1: 修改本地中的/etc/ssh/ssh_config,把參數改為GSSAPIAuthentication no 方法2: a、修改遠程服務器端的/etc/ssh/sshd_config ,把參數改為GSSAP…

    系統運維 2016-12-05
  • Linux三劍客之grep伐木累(正則表達式)

    一、Linux文本處理三劍客     Linux上有三種常用的文本處理工具,分別為:grep(egrep、fgrep)、sed、awk。今天主要給大家介紹一下三劍客中的第一劍:grep伐木累。 二、grep是什么?     grep 全稱(Globally search a Re…

    Linux干貨 2016-03-09

評論列表(1條)

  • h
    h 2017-09-13 11:14

    內容不錯,注意排版,繼續加油!

欧美性久久久久