UNPKG

3.01 kBMarkdownView Raw
1semanage
2===
3
4默认目录的安全上下文查询与修改
5
6## 补充说明
7
8**semanage命令** 是用来查询与修改SELinux默认目录的安全上下文。SELinux的策略与规则管理相关命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。
9
10### 语法
11
12```shell
13semanage {login|user|port|interface|fcontext|translation} -l
14semanage fcontext -{a|d|m} [-frst] file_spec
15```
16
17### 选项
18
19```shell
20-l:查询。
21fcontext:主要用在安全上下文方面。
22-a:增加,你可以增加一些目录的默认安全上下文类型设置。
23-m:修改。
24-d:删除。
25```
26
27### 实例
28
29查询一下`/var/www/html`的默认安全性本文的设置:
30
31```shell
32semanage fcontext -l
33SELinux fcontext type Context
34....(前面省略)....
35/var/www(/.*)? all files system_u:object_r:httpd_sys_content_t:s0
36....(後面省略)....
37```
38
39如上面例子所示,我们可以查询的到每个目录的安全性本文!而目录的设定可以使用正则表达式去指定一个范围。那么如果我们想要增加某些自定义目录的安全性本文呢?举例来说,我想要色设置`/srv/samba`成为 `public_content_t`的类型时,应该如何设置呢?
40
41用semanage命令设置`/srv/samba`目录的默认安全性本文为`public_content_t`
42
43```shell
44mkdir /srv/samba
45ll -Zd /srv/samba
46drwxr-xr-x root root root:object_r:var_t /srv/samba
47```
48
49如上所示,默认的情况应该是`var_t`这个咚咚的!
50
51```shell
52semanage fcontext -l | grep '/srv'
53/srv/.* all files system_u:object_r:var_t:s0
54/srv/([^/]*/)?ftp(/.*)? all files system_u:object_r:public_content_t:s0
55/srv/([^/]*/)?www(/.*)? all files system_u:object_r:httpd_sys_content_t:s0
56/srv/([^/]*/)?rsync(/.*)? all files system_u:object_r:public_content_t:s0
57/srv/gallery2(/.*)? all files system_u:object_r:httpd_sys_content_t:s0
58/srv directory system_u:object_r:var_t:s0 //看这里!
59```
60
61上面则是默认的`/srv`底下的安全性本文资料,不过,并没有指定到`/srv/samba`
62
63```shell
64semanage fcontext -a -t public_content_t "/srv/samba(/.*)?"
65semanage fcontext -l | grep '/srv/samba'
66/srv/samba(/.*)? all files system_u:object_r:public_content_t:s0
67```
68
69```shell
70cat /etc/selinux/targeted/contexts/files/file_contexts.local
71# This file is auto-generated by libsemanage
72# Please use the semanage command to make changes
73/srv/samba(/.*)? system_u:object_r:public_content_t:s0 #写入这个档案
74```
75
76```shell
77restorecon -Rv /srv/samba* #尝试恢复默认值
78ll -Zd /srv/samba
79drwxr-xr-x root root system_u:object_r:public_content_t /srv/samba/ #有默认值,以后用restorecon命令来修改比较简单!
80```
81
82semanage命令的功能很多,这里主要用到的仅有fcontext这个选项的用法而已。如上所示,你可以使用semanage来查询所有的目录默认值,也能够使用它来增加默认值的设置!
83
84