1. 程式人生 > >文件系統訪問控制ACL設置

文件系統訪問控制ACL設置

linu acc href -m nbsp ont 系統 def grep

1、傳統Linux文件系統權限的問題

傳統Linux文件系統有三類用戶:文件屬主-u,組用戶-g,其它用戶-o,以及三種訪問權限:讀-r,寫-w,執行或目錄進入-x,但很多時候並不能滿足對文件訪問的細微控制,對組用戶和其它用戶的權限設置粒度比較粗。
例如,對於文件A,除了文件屬主,想讓10個用戶能夠訪問該文件,其它用戶無法訪問該文件,那麽方法如下:1) 將能訪問文件A的10個用戶加入A的組g,賦予A的組訪問權限;2) A的其它用戶無訪問權限。
存在的問題是:在1)中,如果對10個組用戶再細分,5個用戶有rw權限,另外5個用戶只有r權限,則無法做到,因為A的組用戶只有一種權限。簡而言之,在Linux中,一個文件或目錄的訪問權限最多分三種:屬主,組,其它,不能滿足多於3種的權限劃分,這正是引入ACL的目的。

2、ACL

ACL 是 Access Control List 的縮寫,主要的目的是在傳統Linux文件系統權限基礎上提供更細粒度的權限控制,可以針對單個用戶、單個文件或目錄進行 ,這對於需要比較復雜、特殊的權限設置是非常有用的。由於 ACL 是Unix-like 系統額外的支持項目,因此要使用 ACL必需要有文件系統的支持才行。 目前絕大部分的文件系統都有支援 ACL 的功能,包括 ReiserFS, EXT2/EXT3, JFS, XFS 等等。

3、啟動ACL

[[email protected] ~]# mount -o remount,acl /home
[[email protected] ~]# mount | grep /home
/dev/hda5 on /home type ext3 (rw,acl)

或者編輯/etc/fstab
[[email protected] ~]# vi /etc/fstab
/dev/hda5 /home ext3 defaults,acl 1 2

4、ACL設置

$ setfacl //設定某文件或目錄的ACL
$ getfacl //取得某文件或目錄的ACL設定值

建立用戶 test對project目錄的使用權限(需要有 w):
[[email protected] home]$ ls -ld project/
drwx------ 2 cb cb 4.0K 10月 3 18:32 project

[[email protected] home]$ setfacl -m u:test:rwx project

[[email protected] home]$ getfacl project
# file: project/
# owner: cb
# group: cb
user::rwx
user:test:rwx
group::---
mask::rwx
other::---

[[email protected] home]$ ls -ld project/
drwxrwx---+ 2 cb cb 4096 10月 3 18:32 project    //多了一個+ 的標誌,具體的權限得用getfacl來看,ugo的設置與實際有誤差

=-=-=-=-=
Powered by Blogilo

文件系統訪問控制ACL設置