本文出自 “leo_Sary_lansgg” 博客,请务必保留此出处http://lansgg.blog.51cto.com/5675165/1275901



本文系统Centos6.0

本人不得不承认之前真不知道这个命令,也是昨天听了一个讲师的课提到此命令,(了解的大神跳过吧,别吐槽我linux之acl管理文件权限 _linux)在此和大家分享下:

getfacl

setfacl

此命令是干嘛用的呢?相信很多人查看文件、目录的所给予的权限的时候大多都是

ls -l filename

这里本人先演示下getfacl

[root@centos ~]# getfacl install.log
# file: install.log
# owner: root
# group: root
user::rw-
group::r--
other::r--
[root@centos ~]# cp install.log /

上面的结果不用我解释了吧;

演示setfacl  (我本地已经创建个zhangsan、lisi两个用户)

1、相信zhangsan是不能修改install.log文件的,那我怎么让他可以修改呢?

[root@centos /]# setfacl -m u:zhangsan:rw /install.log
[root@centos /]# getfacl /install.log
getfacl: Removing leading '/' from absolute path names
# file: install.log
# owner: root
# group: root
user::rw-
user:zhangsan:rw-
group::r--
mask::rw-
other::r--

这里解释下:

-m (modify)  #修改文件权限

u:zhangsan:rw   #用户zhangsan可以读写

测试:现在切换张三,可以随便/install.log这个文件

[root@centos /]# su - zhangsan
[zhangsan@centos ~]$ vim /install.log

可以随便修改了

2、我想让一个其他组的人可以rwx某脚本怎么办呢?

[root@centos /]# usermod -a -G zhangsan lisi
[root@centos /]# setfacl -m g:zhangsan:rwx /install.log
[root@centos /]# getfacl /install.log
getfacl: Removing leading '/' from absolute path names
# file: install.log
# owner: root
# group: root
user::rw-
user:zhangsan:rw-
group::r--
group:zhangsan:rwx
mask::rwx
other::r--

现在 zhangsan组里的用户zhangsan、lisi可以随便操作该文件了;

3、撤销权限,比如用户zhangsan

[root@centos /]# setfacl -x u:zhangsan /install.log

这样就撤销了zhansan的权限,但是注意现在他还是可以rw的,因为我已经将组也赋予权限了

你可以将zhangsan移除组;或许你想取消该组的权限的话,操作下面命令即可

[root@centos /]# setfacl -x g:zhangsan /install.log

4、比如你想取消所有的权限,不想一个个取消的话,可以操作下面命令

[root@centos /]# setfacl -b /install.log
[root@centos /]# getfacl /install.log
getfacl: Removing leading '/' from absolute path names
# file: install.log
# owner: root
# group: root
user::rw-
group::r--
other::r--

-b, --remove-all   (-b 表示 --remove-all)

5、如果你想给目录赋予权限呢?

[root@centos /]# mkdir /test
[root@centos /]# setfacl -R -m u:zhangsan:rwx /test/

-R (recursive) 递归赋予权限

现在zhangsan用户可以随便在/test目录操作:

注意:关于目录赋予权限必须要x权限

关于给组赋值是一样的

[root@centos /]# setfacl -R -m g:zhangsan:rwx /test/