ACL
权限分配:给指定的用户指定目录分配指定的权限。
1
、
ACL
权限管理命令
查看
ACL
权限:
[root@localhost ~]# getfacle
文件名
设定
ACL
权限
语法:
setfacl
选项 文件名
选项:
-m
:设定
ACL
权限。如果是给予用户
ACL
权限,则使用
u:
用户名
:
权限
格式赋予;如果是给予组
ACL
权限,
则使用
g:
组名
:
权限
"
格式赋予;
-x
:删除指定的
ACL
权限;
-b
:删除所有的
ACL
权限;
-d
:设定默认
ACL
权限。只对目录生效,指目录中新建立的文件拥有此默认权限;
-k
:删除默认
ACL
权限;
-R
:递归设定
ACL
权限。指设定的
ACL
权限会对目录下的所有子文件生效;
#
给用户和用户组添加
ACL
权限
给用户设定
ACL
权限:
setfacl -m u:
用户名
:
权限 指定文件名
给用户组设定
ACL
权限:
setfacl -m g:
组名
:
权限 指定文件名
#
通过加上选项
-R
递归设定文件的
ACL
权限,所有的子目录和子文件也会拥有相同的
ACL
权限
setfacl -Rm u:
用户名
:
权限
-R
文件名
#
如果给父目录设定了默认的
ACL
权限,那么父目录中所有新建的子文件会继承父目录的
ACL
权限
setfacl -m d:u:
用户名
:
权限 文件名
setfacl -md u:
用户名
:
权限 文件名
示例:所有者
root
用户在根目录下创建一个文件目录
/project
,然后创建一个
QQ
群所属组,所属组里面创建两个用户
zhangsan
和
lisi
。此文件权限是
770
。
然后创建一个旁听用户
pt
,给他设定
/project
目录的
ACL
为
r-x
。
[root@kongd ~]# mkdir /project
[root@kongd ~]# useradd zhangsan
[root@kongd ~]# useradd lisi
[root@kongd ~]# groupadd QQgroup
[root@kongd ~]# gpasswd -M zhangsan,lisi QQgroup
[root@kongd ~]# chown root:QQgroup /project/
[root@kongd ~]# chmod 770 /project/
[root@kongd ~]# ll -d /project/
drwxrwx---. 2 root QQgroup 6 12
月
30 14:15 /project/
目录
/project
的所有者和所属组其他人权限设定为
770
。接下来我们创建旁听用户
pt
,并赋予
acl
权限
rx
[root@kongd ~]# useradd pt
[root@kongd ~]# setfacl -m u:pt:rx /project/
注意如下所示,如果某个目录或文件下有
+
标志,说明其具有
acl
权限。
[root@kongd ~]# ll -d /project/
drwxrwx---+ 2 root QQgroup 6 12
月
30 14:15 /project/
[root@kongd ~]# getfacl /project/
getfacl: Removing leading '/' from absolute path names
# file: project/
# owner: root
# group: QQgroup
user::rwx
user:pt:r-x
group::rwx
mask::rwx
other::---
为了验证
pt
用户对于
/project
目录没有写权限,我们用
su
命令切换到
pt
用户,然后进入
/project
目录,在此目录
下创建文件,看是否能成功:
[root@kongd ~]# su - pt
[pt@kongd ~]$ cd /project/
[pt@kongd project]$ touch test.txt
touch:
无法创建
'test.txt':
权限不够
删除
acl
权限
#
删除指定用户的
ACL
权限
setfacl -x u:
用户名 文件名
#
删除指定用户组的
ACL
权限
setfacl -x g:
组名 文件名
#
删除文件的所有
ACL
权限
setfacl -b
文件名
下面为了进行巩固,我们一起来做几道题吧!
#1、创建g1组,要求创建一个属于redhat用户g1组的文件redhat.txt
#2、新建/sc目录,所属组为group组,root用户和group组用户可在该目录下创建文件,其他人无任何权限
#3、新建/cw目录为财务部存储目录,只能对财务部人员可以写入,并且财务部人员所建立的文件都自动属于mygroup组中
#4、设置helen用户对于/sc和/cw目录可读、可写、可执行
#5、设置/test目录为公共存储目录,对所有用户可以读、写、执行,但用户只能删除属于自己的文件。
#6、在/test/dir里创建的新文件自动属于temp组