linux中ACL的设置
主机的细部权限规划:ACL的使用
ACL是Access Control List 的缩写,主要用于在提供传统的owner、group、others的read、write、execute权限之外进行细部权限设置。
- Ø 启动ACL
例如:让/home支持ACL:
#mount –o remount ,acl /home
#mount |grep /home //查看是否有挂载
- Ø 开机启动ACL:
将要启动ACL的分区写入/etc/fstab中:
如:#vi /etc/fstab
/dev/hda5 /home ext3 default,acl 1 2
- Ø ACL的设置技巧:
Getfacl :取得某个文件/目录的ACL权限;
Setfacl :设置某个文件/目录的ACL权限;
l Setfacl [-mxbd]设置值
-m :设置一个ACL权限;
-x : 取消一个ACL权限;
-b :取消全部的ACL权限;
-d :设置默认的ACL权限,仅能对目录使用。
1:针对用户设置:
Setfacl –m u:用户名:权限文件/目录
如针对test这个用户:
#Setfacl –m u:test:rwx /home/project //这样,test用户就获得了对/home/project目录的全部的权限;
2:针对群组用户设置:
Setfacl –m g:群组名:权限文件/目录
如针对user群组:
#Setfacl –m g:user:rw /home/project //这样,user群组里的所有用户即对/home/project目录只有r和w权限;
注:如上虽能对一个文件或者目录做好ACL访问控制的权限,但没有设置ACL的mask(即下面第三点),因为mask需要与用户的权限进行逻辑与运算之后,才能变成有效的权限。
3:针对默认权限的设置:
Setfacl –m m:权限
#setfacl –m m:rwx somefile
如在1 中,若我们还对/home/project设置了mask,即:
Setfacl -m m:rx /home/project
那么test和mask相与之后,test的有效权限就成了rx。
l ACL的删除:
删除一个用户的ACL权限:
Setfacl -x u:test:rwx /home/project //删除了test用户对/home/project的权限;
删除全部的ACL权限:
Setfacl –b somefile