前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SELinux的策略与规则管理相关命令

SELinux的策略与规则管理相关命令

作者头像
菲宇
发布2022-12-02 14:28:09
4740
发布2022-12-02 14:28:09
举报
文章被收录于专栏:菲宇菲宇

SELinux的策略与规则管理相关命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。

1、setinfo命令

语法seinfo(选项)选项-A:列出SELinux的状态、规则布尔值、身份识别、角色、类型等所有信息。-t:列出SELinux所有类型(type)的种类。-r:列出SELinux所有角色(role)的种类。-u:列出SELinux所有身份识别(user)的种类。-b:列出所有规则的种类(布尔值)。实例列出与httpd有关的规则:seinfo -b | grep httpd 来自: http://man.linuxde.net/seinfo

语法seinfo(选项)选项-A:列出SELinux的状态、规则布尔值、身份识别、角色、类型等所有信息。-t:列出SELinux所有类型(type)的种类。-r:列出SELinux所有角色(role)的种类。-u:列出SELinux所有身份识别(user)的种类。-b:列出所有规则的种类(布尔值)。实例列出与httpd有关的规则:seinfo -b | grep httpd 来自: http://man.linuxde.net/seinfo

语法seinfo(选项)选项-A:列出SELinux的状态、规则布尔值、身份识别、角色、类型等所有信息。-t:列出SELinux所有类型(type)的种类。-r:列出SELinux所有角色(role)的种类。-u:列出SELinux所有身份识别(user)的种类。-b:列出所有规则的种类(布尔值)。实例列出与httpd有关的规则:seinfo -b | grep httpd 来自: http://man.linuxde.net/seinfo

语法

代码语言:javascript
复制
  seinfo(选项)

 来自: 
  http://man.linuxde.net/seinfo
 
 
  seinfo(选项)

 来自: 
  http://man.linuxde.net/seinfo
 setinfo (选项)

选项

代码语言:javascript
复制
-a:列出该类型或布尔值的所有相关信息
 
  -A:列出SELinux的状态、规则布尔值、身份识别、角色、类型等所有信息。 -t:列出SELinux所有类型(type)的种类。 -r:列出SELinux所有角色(role)的种类。 -u:列出SELinux所有身份识别(user)的种类。 -b:列出所有规则的种类(布尔值)。
  

  
 来自: 
  http://man.linuxde.net/seinfo
  
  -a:列出该类型或布尔值的所有相关信息
代码语言:javascript
复制
-t:后面还要接类型,例如 -t httpd_t
-b:后面还要接布尔值的规则,例如 -b httpd_enable_ftp_serve

实例

代码语言:javascript
复制
列出与httpd有关的规则:setinfo -b |grep httpd

2、sesearch命令

语法seinfo(选项)选项-A:列出SELinux的状态、规则布尔值、身份识别、角色、类型等所有信息。-t:列出SELinux所有类型(type)的种类。-r:列出SELinux所有角色(role)的种类。-u:列出SELinux所有身份识别(user)的种类。-b:列出所有规则的种类(布尔值)。实例列出与httpd有关的规则:seinfo -b | grep httpd 来自: http://man.linuxde.net/seinfo

语法seinfo(选项)选项-A:列出SELinux的状态、规则布尔值、身份识别、角色、类型等所有信息。-t:列出SELinux所有类型(type)的种类。-r:列出SELinux所有角色(role)的种类。-u:列出SELinux所有身份识别(user)的种类。-b:列出所有规则的种类(布尔值)。实例列出与httpd有关的规则:seinfo -b | grep httpd 来自: http://man.linuxde.net/seinfo

语法seinfo(选项)选项-A:列出SELinux的状态、规则布尔值、身份识别、角色、类型等所有信息。-t:列出SELinux所有类型(type)的种类。-r:列出SELinux所有角色(role)的种类。-u:列出SELinux所有身份识别(user)的种类。-b:列出所有规则的种类(布尔值)。实例列出与httpd有关的规则:seinfo -b | grep httpd 来自: http://man.linuxde.net/seinfo

语法

代码语言:javascript
复制
  seinfo(选项)

 来自: http://man.linuxde.net/seinfo
 
 
  seinfo(选项)

 来自: http://man.linuxde.net/seinfo
 sesearch [-a] [-s 主体类型] [-t 目标类型] [-b 布尔值]

选项

代码语言:javascript
复制
  -A:列出SELinux的状态、规则布尔值、身份识别、角色、类型等所有信息。 -t:列出SELinux所有类型(type)的种类。 -r:列出SELinux所有角色(role)的种类。 -u:列出SELinux所有身份识别(user)的种类。 -b:列出所有规则的种类(布尔值)。

 来自: http://man.linuxde.net/seinfo
 -A:列出SELinux的状态、规则布尔值、身份识别、角色、类型等所有信息。-t:列出SELinux所有类型
代码语言:javascript
复制
-r:列出SELinux所有角色(role)的种类。
-u:列出SELinux所有身份识别(user)的种类。
-b:列出所有规则的种类(布尔值)。

实例

代码语言:javascript
复制
找出目标文件资源类型为httpd_sys_content_t的有关信息:
sesearch -a -t httpd_sys_conten_t找出主体进程为httpd_t且目标文件类型为httpd相关的所有信息sesearch -s httpd_t -t httpd_* -a

3、getsebool命令

语法

代码语言:javascript
复制
getsebool [-a] [布尔值条款]

选项

代码语言:javascript
复制
-a:列出目前系统上面的所有布尔值条款设置为开启或关闭值。

实例

查询本系统内所有的布尔值设置状况:

代码语言:javascript
复制
getsebool -a 
NetworkManager_disable_trans --> off 
allow_console_login --> off 
allow_cvs_read_shadow --> off 
allow_daemons_dump_core --> on 
....(底下省略)....

查询httpd_enable_homedirs是否为关闭,若没关闭,请关闭它:

代码语言:javascript
复制
getsebool httpd_enable_homedirs setsebool -P httpd_enable_homedirs=0 //0是关闭 1是开启

4、setsebool命令

语法

代码语言:javascript
复制
setsebool [-P] 布尔值=[0|1]

选项

代码语言:javascript
复制
-P:直接将设置值写入配置文件,该设置数据将来会生效的。

实例

允许vsvtp匿名用户写入权限:

代码语言:javascript
复制
setsebool -P allow_ftpd_anon_write=1

如果你希望你的ftp用户可以访问自己的家目录的话,需要开启:

代码语言:javascript
复制
setsebool -P ftp_home_dir 1

如果你希望将vsftpd以daemon的方式运行的话,需要开启:

代码语言:javascript
复制
setsebool -P ftpd_is_daemon 1

HTTP被设置允许cgi的设置:

代码语言:javascript
复制
setsebool -P httpd_enable_cgi 1

允许用户HHTP访问其家目录,该设定限仅于用户的家目录主页:

代码语言:javascript
复制
setsebool -P httpd_enable_homedirs 1 
chcon -R -t httpd_sys_content_t ~user/public_html

允许httpd访问终端:

代码语言:javascript
复制
setsebool -P httpd_tty_comm 1

关闭Selinux的关于httpd进程守护的保护:

代码语言:javascript
复制
setsebool -P httpd_disable_trans 1 
service httpd restart

关于named、master更新selinux设定:

代码语言:javascript
复制
setsebool -P named_write_master_zones 1

关闭named的进程守护保护:

代码语言:javascript
复制
setsebool -P named_disable_trans 1 
service named restart

Selinux将本机的NFS共享设置成只读:

代码语言:javascript
复制
setsebool -P nfs_export_all_ro 1

SElinux将本机的NFS共享设置成可读可写:

代码语言:javascript
复制
setsebool -P nfs_export_all_rw 1

如果你想要将远程NFS的家目录共享到本机,需要开启:

代码语言:javascript
复制
setsebool -P use_nfs_home_dirs 1

如果samba服务器共享目录给多个域,则需要:

代码语言:javascript
复制
setsebool -P allow_smbd_anon_write=1

samba服务器要共享家目录时:

代码语言:javascript
复制
setsebool -P samba_enable_home_dirs 1

如果你需在本机上使用远程samba服务器的家目录:

代码语言:javascript
复制
setsebool -P use_samba_home_dirs 1

关闭selinux关于samba的进程守护的保护:

代码语言:javascript
复制
setsebool -P smbd_disable_trans 1 
service smb restart

允许rsync其他用户写入时:

代码语言:javascript
复制
setsebool -P allow_rsync_anon_write=1

允许系统使用kerberos:

代码语言:javascript
复制
setsebool -P rsync_disable_trans 1

系统工作在nis环境时:

代码语言:javascript
复制
setsebool -P allow_ypbind 1

5、semanage命令

语法

代码语言:javascript
复制
semanage {login|user|port|interface|fcontext|translation} -l 
semanage fcontext -{a|d|m} [-frst] file_spec

选项

代码语言:javascript
复制
--l:查询。 
fcontext:主要用在安全上下文方面。 
-a:增加,你可以增加一些目录的默认安全上下文类型设置。 
-m:修改。 
-d:删除。

实例

查询一下/var/www/html的默认安全性本文的设置:

代码语言:javascript
复制
semanage fcontext -l 
SELinux fcontext type Context 
....(前面省略).... /var/www(/.*)? all files system_u:object_r:httpd_sys_content_t:s0 ....(後面省略)....

如上面例子所示,我们可以查询的到每个目录的安全性本文!而目录的设定可以使用正则表达式去指定一个范围。那么如果我们想要增加某些自定义目录的安全性本文呢?举例来说,我想要色设置/srv/samba成为public_content_t内联代码的类型时,应该如何设置呢?

用semanage命令设置/srv/samba目录的默认安全性本文为public_content_t:

代码语言:javascript
复制
chcon -t public_content_rw_t /var/ftp/incoming

允许用户HHTP访问其家目录,该设定限仅于用户的家目录主页:

代码语言:javascript
复制
mkdir /srv/samba 
ll -Zd /srv/samba 
drwxr-xr-x root root root:object_r:var_t /srv/samba

如上所示,默认的情况应该是var_t这个咚咚的!

代码语言:javascript
复制
semanage fcontext -l | grep '/srv' 
/srv/.* all files system_u:object_r:var_t:s0 
/srv/([^/]*/)?ftp(/.*)? all files system_u:object_r:public_content_t:s0 
/srv/([^/]*/)?www(/.*)? all files system_u:object_r:httpd_sys_content_t:s0 /srv/([^/]*/)?rsync(/.*)? all files system_u:object_r:public_content_t:s0 /srv/gallery2(/.*)? all files system_u:object_r:httpd_sys_content_t:s0 
/srv directory system_u:object_r:var_t:s0 //看这里!

上面则是默认的/srv底下的安全性本文资料,不过,并没有指定到/srv/samba。

代码语言:javascript
复制
semanage fcontext -a -t public_content_t "/srv/samba(/.*)?" 
semanage fcontext -l | grep '/srv/samba' 
/srv/samba(/.*)? all files system_u:object_r:public_content_t:s0
代码语言:javascript
复制
cat /etc/selinux/targeted/contexts/files/file_contexts.local 
# This file is auto-generated by libsemanage # Please use the semanage command to make changes 
/srv/samba(/.*)? system_u:object_r:public_content_t:s0 #写入这个档案
代码语言:javascript
复制
restorecon -Rv /srv/samba* #尝试恢复默认值 ll -Zd /srv/samba drwxr-xr-x root root system_u:object_r:public_content_t /srv/samba/ #有默认值,以后用restorecon命令来修改比较简单!
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-09-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档