linux之ACL授权

阅读更多

ACL授权比chmod更加灵活,也更加精细化,在进行授权操作时,推荐使用ACL方式。

 

一.添加权限

setfacl -m u:username:rwx dir/file  #此时会看的dir的权限多了一个加号

-m:添加或者修改

u[设置用户]:username[用户名]:rwx[设置权限]

g[设置组]:groupname[组名]:rwx[设置权限]

 

setfacl -m u:username:r -R dir #同时设置子目录下的权限

-R : 递归设置子目录下的权限

 

setfacl -m mask::r-- dir/file #设置mask的值,mask用于限制ACL_USER, ACL_GROUP和ACL_GROUP_OBJ的最大值

ACL_USER_OBJ : user::rwx  #文件所有者

ACL_USER:user : user:username:rwx

ACL_GROUP_OBJ : group::r-x #文件所属组

ACL_GROUP : group:groupname:r-x

 

 

二.查看权限

getfacl dir/file  #查看该目录被设置的所有acl权限

--omit-header :去掉头信息

 

三.删除权限

setfacl -x u:username dir/file #删除用户的权限

setfacl -x g:groupname dir/file #删除组的权限

setfacl -b dir/file  #删除该目录的全部acl权限

 

 

四.缺省的ACL设置

说明:如果希望在dir下建立的所有文件都可以被某一用户访问. 那么我们就应该对dir目录设置Default ACL。

setfacl -d -m user:username:rw dir

-d : 设置default acl

这样,任何人在该目录下创建的文件,都可以被username读写。

 

setfacl -k dir # 删除缺省acl设置

 

 

五.示例:

1.文件

1)ll -d testfile

drwxr-xr-x 2 root root 4096 1月  20 18:59 testfile

 

2)setfacl -m u:hanqunfeng:rwx testfile

 

3)ll -d testfile

drwxrwxr-x+ 2 root root 4096 1月  20 18:59 testfile

 

4)getfacl testfile

# file: test

# owner: root

# group: root

user::rwx

user:hanqunfeng:rwx

group::r-x

mask::rwx

other::r-x

 

说明:缺省的mask值也被设定为rwx.那是因为它规定了ACL_USER[user:hanqunfeng:rwx], ACL_GROUP和ACL_GROUP_OBJ[group::r-x]的最大值。

 

5)setfacl -m mask::r-- testfile

6)getfacl test

# file: test

# owner: root

# group: root

user::rwx

user:hanqunfeng:rwx             #effective:r--

group::r-x                      #effective:r--

mask::r--

other::r-x

 

说明:此时会看到相应的权限后面多出了#effective:r--,因为mask规定了ACL_USER, ACL_GROUP和ACL_GROUP_OBJ的最大值,所以实际的权限也是r--。

 

7)getfacl --omit-header testfile #去掉头信息

user::rwx

user:hanqunfeng:rwx             #effective:r--

group::r-x                      #effective:r--

mask::r--

other::r-x

 

8)setfacl -x u:hanqunfeng testfile

 

9)ll -d testfile

drwxr-xr-x+ 2 root root 4096 1月  20 18:59 testfile

 

10)setfacl -b testfile

 

11)ll -d testfile

drwxr-xr-x 2 root root 4096 1月  20 18:59 testfile

 

2.目录

1)setfacl -m u:hanqunfeng:rwx -R testdir

 

2)ll -d testdir

drwxrwxr-x+ 2 root root 4096 1月  20 18:59 testdir

 

3)getfacl --omit-header testdir

user::rwx

user:hanqunfeng:rwx

group::r-x

mask::rwx

other::r-x

 

4)setfacl -d -m u:hanqunfeng:rwx -R testdir

 

5)getfacl --omit-header testdir

user::rwx

user:hanqunfeng:rwx

group::r-x

mask::rwx

other::r-x

default:user::rwx

default:user:hanqunfeng:rwx

default:group::r-x

default:mask::rwx

default:other::r-x

 

6)setfacl -b testdir

 

7)ll -d testfile

drwxr-xr-x 2 root root 4096 1月  20 18:59 testdir

 

 

你可能感兴趣的:(linux之ACL授权)