1 | semanage
|
2 | ===
|
3 |
|
4 | 默认目录的安全上下文查询与修改
|
5 |
|
6 | ## 补充说明
|
7 |
|
8 | **semanage命令** 是用来查询与修改SELinux默认目录的安全上下文。SELinux的策略与规则管理相关命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。
|
9 |
|
10 | ### 语法
|
11 |
|
12 | ```shell
|
13 | semanage {login|user|port|interface|fcontext|translation} -l
|
14 | semanage fcontext -{a|d|m} [-frst] file_spec
|
15 | ```
|
16 |
|
17 | ### 选项
|
18 |
|
19 | ```shell
|
20 | -l:查询。
|
21 | fcontext:主要用在安全上下文方面。
|
22 | -a:增加,你可以增加一些目录的默认安全上下文类型设置。
|
23 | -m:修改。
|
24 | -d:删除。
|
25 | ```
|
26 |
|
27 | ### 实例
|
28 |
|
29 | 查询一下`/var/www/html`的默认安全性本文的设置:
|
30 |
|
31 | ```shell
|
32 | semanage fcontext -l
|
33 | SELinux 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
|
44 | mkdir /srv/samba
|
45 | ll -Zd /srv/samba
|
46 | drwxr-xr-x root root root:object_r:var_t /srv/samba
|
47 | ```
|
48 |
|
49 | 如上所示,默认的情况应该是`var_t`这个咚咚的!
|
50 |
|
51 | ```shell
|
52 | semanage 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
|
64 | semanage fcontext -a -t public_content_t "/srv/samba(/.*)?"
|
65 | semanage fcontext -l | grep '/srv/samba'
|
66 | /srv/samba(/.*)? all files system_u:object_r:public_content_t:s0
|
67 | ```
|
68 |
|
69 | ```shell
|
70 | cat /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
|
77 | restorecon -Rv /srv/samba* #尝试恢复默认值
|
78 | ll -Zd /srv/samba
|
79 | drwxr-xr-x root root system_u:object_r:public_content_t /srv/samba/ #有默认值,以后用restorecon命令来修改比较简单!
|
80 | ```
|
81 |
|
82 | semanage命令的功能很多,这里主要用到的仅有fcontext这个选项的用法而已。如上所示,你可以使用semanage来查询所有的目录默认值,也能够使用它来增加默认值的设置!
|
83 |
|
84 |
|
85 |
|
\ | No newline at end of file |