一、Semanage
Smanage用于查询和修改SELinux默认目录的安全上下文。
常见语法:
semanage {login|user|port|interface|fcontext|translation} -l
semanage fcontext -{a|d|m} [-frst] file_spec
-l:查询、-a:增加、-d:删除、-m:修改、-f:文件、-s:用户、-t:类型、-r:角色、fcontext安全上下文。
详细参数可参考:http://blog.sina.com.cn/s/blog_70ca787b01013a9c.html
例子修改目录默认安全上下文:
http://c.biancheng.net/view/1152.html
二、Acl
目前常用于较为复杂目录文件权限控制。
1、查看分区ACL权限是否开启:dumpe2fs -h 分区路径 ---- 显示 Default mount options: user_xattr acl
2、开启分区ACL权限:
临时开启:mount -o remount,acl /
永久开启:vim /etc/fstab 修改下面:
UUID=490ed737-f8cf-46a6-ac4b-b7735b79fc63 / ext4 defaults,acl 1 1
然后重新挂载:mount -o remount /
3、设置ACL权限:setfacl
选项:
-m:设定ACL权限
-x:删除指定的ACL权限
-b:删除所有的ACL权限
-d:设定默认ACL权限
-k:删除默认ACL权限
-R:递归设定ACL权限
例子:
setfacl -m u:root:r-x /project
setfacl -m g:root:rwx /project
setfacl -m m:rw /project 修改文件的mask权限。
ll某个文件或者目录有+号,例如drwxrwx--+表示具有ACL权限。
4、查看ACL权限:
getfacl 文件名
5、删除ACL权限:
serfacl -x u:用户名 文件名
setfacl -x g:组名 文件名
setfacl -b 文件名 (删除所有ACL权限)
6、递归ACL权限:
setfacl -m u:用户名:权限 -R 文件名 (对新建不生效)
7、默认ACL权限:
setfacl -m d:u:用户名:权限 文件名 (新建的子文件会继承父目录的ACL权限)