一、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權限)