本文出自 “leo_Sary_lansgg” 博客,请务必保留此出处http://lansgg.blog.51cto.com/5675165/1275901
本文系统Centos6.0
本人不得不承认之前真不知道这个命令,也是昨天听了一个讲师的课提到此命令,(了解的大神跳过吧,别吐槽我)在此和大家分享下:
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/