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

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

seinfo 命令

seinfo命令是用来查询SELinux的策略提供多少相关规则,一个主体进程能否读取到目标文件资源的重点是在于SELinux的策略以及策略内的各项规则,然后再通过该规则的定义去处理各项目标文件的安全上下文,尤其是“类型”部分。

-A:列出SELinux的状态、规则布尔值、身份识别、角色、类型等所有信息。

-t:列出SELinux所有类型(type)的种类。

-r:列出SELinux所有角色(role)的种类。

-u:列出SELinux所有身份识别(user)的种类。

-b:列出所有规则的种类(布尔值)。

实例 

列出与httpd有关的规则:

seinfo -b | grep httpd


sesearch命令

如果查到的相关类型或者布尔值,想要知道详细规则时,使用sesearch命令查询。

语法

sesearch [-a] [-s 主体类型] [-t 目标类型] [-b 布尔值]

选项

-a:列出该类型或布尔值的所有相关信息

-t:后面还要接类型,例如 -t httpd_t

-b:后面还要接布尔值的规则

实例 

-b httpd_enable_ftp_server 实例

找出目标文件资源类型为httpd_sys_content_t的有关信息:

sesearch -a -t httpd_sys_content_t

找出主体进程为httpd_t且目标文件类型为httpd相关的所有信息:

sesearch -s httpd_t -t httpd_* -a

查看布尔值httpd_enable_homedirs设置了多少规则

sesearch -b httpd_enable_homedirs -a

getsebool命令

是用来查询SElinux策略内各项规则的布尔值。

语法 

getsebool [-a] [布尔值条款]

选项 

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

实例 

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

getsebool -a

NetworkManager_disable_trans -->

off allow_console_login -->

 setsebool命令

setsebool命令是用来修改SElinux策略内各项规则的布尔值。setsebool命令和getsebool命令是SELinux修改和查询布尔值的一套工具组。

语法

setsebool [-P] 布尔值=[0|1]

选项

-P:直接将设置值写入配置文件,该设置数据将来会生效的。

实例

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

setsebool -P allow_ftpd_anon_write=1

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

setsebool -P ftp_home_dir 1

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

setsebool -P ftpd_is_daemon 1

你可以让SElinux停止保护vsftpd的daemon方式动行:

setsebool -P ftpd_disable_trans 1

HTTP被设置允许cgi的设置:

setsebool -P httpd_enable_cgi 1

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

setsebool -P httpd_enable_homedirs 1

chcon -R -t httpd_sys_content_t ~user/public_html

允许httpd访问终端:

setsebool -P httpd_tty_comm 1

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

setsebool -P httpd_disable_trans 1

service httpd restart

关于named、master更新selinux设定:

setsebool -P named_write_master_zones 1

关闭named的进程守护保护:

setsebool -P named_disable_trans 1

service named restart

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

setsebool -P nfs_export_all_ro 1

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

setsebool -P nfs_export_all_rw 1

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

setsebool -P use_nfs_home_dirs 1

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

setsebool -P allow_smbd_anon_write=1

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

setsebool -P samba_enable_home_dirs 1

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

setsebool -P use_samba_home_dirs 1

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

setsebool -P smbd_disable_trans 1

service smb restart

允许rsync其他用户写入时:

setsebool -P allow_rsync_anon_write=1

停止rsync的进程保护

setsebool -P rsync_disable_trans 1

允许系统使用kerberos:

setsebool -P allow_kerberos 1

系统工作在nis环境时:

setsebool -P allow_ypbind 1

semanage命令

semanage命令是用来查询与修改SELinux默认目录的安全上下文。

语法

semanage {login|user|port|interface|fcontext|translation} -l

semanage fcontext -{a|d|m} [-frst] file_spec

选项

-l:查询。

fcontext:主要用在安全上下文方面。

-a:增加,你可以增加一些目录的默认安全上下文类型设置。

-m:修改。

-d:删除。

实例

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

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:

mkdir /srv/samba

ll -Zd /srv/samba

drwxr-xr-x  root root root:object_r:var_t    /srv/samba

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

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。

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

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  #写入这个档案

restorecon -Rv /srv/samba* #尝试恢复默认值

ll -Zd /srv/samba

drwxr-xr-x  root root system_u:object_r:public_content_t /srv/samba/  #有默认值,以后用restorecon命令来修改比较简单!

semanage命令的功能很多,这里主要用到的仅有fcontext这个选项的用法而已。如上所示,你可以使用semanage来查询所有的目录默认值,也能够使用它来增加默认值的设置!

时间: 2024-08-02 21:42:15

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

Linux基础--进程管理相关命令介绍(2)

本文主要介绍了Linux中进程管理的相关命令,涉及到的主要命令有top,vmstat等. (1)top ①功能:用来查看CPU,内存以及进程的状态. ②用例: ③相关注释: load average表示负载,三个数值分别表示第1分钟,第5分钟,第10分钟 Cpu中us表示用户空间程序占用百分比,sy表示内核模式占用百分比,ni表示调整NICE值所占用的    CPU百分比,id表示CPU的空闲比例,wa表示等待磁盘IO完成所占用的时间比例,hi表示硬件中断占     据的百分比,si表示软中断所

Linux基础--进程管理相关命令介绍(1)

本文主要介绍了Linux中进程管理的相关命令,涉及到的主要命令有pstree,ps. (1)pstree ①功能:用来查看进程树 ②用例: (2)ps ①功能:用来显示系统当前进程状态的命令 ②用例: ③相关用法: ps a:显示所有跟终端相关的进程 ps x:显示所有跟终端无关的进程 相关注释: STAT各代码含义: S:可中断的睡眠态 D:不可中断的睡眠态 R:运行或可运行 T:停止 Z:僵死 s:session leader l:多线程进程 +:前台进程 N:低优先级进程 <:高优先级进程

linux进程管理——进程管理相关命令

linux系统上与进程有关的命令: 查看类命令: ps,pstree,pidof,pgrep\pkill,top,htop,glances,dstat,vmstat,pmap 管理类命令: bg,fg,jobs,kill,killall,nohup,nice,renice pstree命令: pstree - display a tree of processes 显示进程之间的关系,用树状图表示 ps命令: ps - report a snapshot of the current proce

openSUSE 13.2 RPM及包管理相关命令记录

以列表的形式给出,首先是rpm的相关命令. 命令语法 命令语义 rpm -ql $PACKAGE 查看$PACKAGE的包都包含了哪些文件 rpm -ql $FILE 查看$FILE从属于哪个软件包 接下来是zypper的相关命令. 命令语法 命令语义     最后是obs的相关命令.

Linux用户权限管理和组管理相关命令

目标 用户 和 权限 的基本概念 用户管理 终端命令 组管理 终端命令 修改权限 终端命令 01. 用户 和 权限 的基本概念 1.1 基本概念 用户 是 Linux 系统工作中重要的一环,用户管理包括 用户 与 组 管理 在 Linux 系统中,不论是由本机或是远程登录系统,每个系统都必须拥有一个账号,并且对于不同的系统资源拥有不同的使用权限 在 Linux 中,可以指定 每一个用户 针对 不同的文件或者目录 的 不同权限 对 文件/目录 的权限包括: 序号 权限 英文 缩写 数字代号 01

源代码管理相关命令(Git常用命令、Nuget常用命令、CMD常用命令)

Git常用命令 源代码工具 工具名称 相关地址 Git Git for Windows VSC Visual Studio Code VSC插件(Gitlen) GitLens - Git supercharged 分支的新建与合并 假设此时,你突然接到一个电话说有个很严重的问题需要紧急修补,那么可以按照下面的方式处理 返回到原先已经发布到生产服务器上的分支. 为这次紧急修补建立一个新分支,并在其中修复问题. 通过测试后,回到生产服务器所在的分支,将修补分支合并进来,然后再推送到生产服务器上.

Linux进程管理相关命令

进程状态查看命令: ps:Process State -o:指定显示字段 进程状态显示有两种风格: BSD风格:使用时不加- SysV风格:使用时加- BSD风格: a:显示所有与终端有关的进程 u:显示进程由哪个用户启动的 x:显示所有与终端无关的进程 SysV风格: -elF -ef -eF 进程的状态: D:不可中断的睡眠 R:运行或就绪 S:可中断的睡眠 T:停止 Z:僵尸进程 <:高优先级进程 N:低优先级进程 +:前台进程组中的进程 l :多线程进程 s:会话进程首进程 [ ]:加了

linux 进程管理相关命令汇总

## processes 进程管理 ##ps查看当前系统执行的线程列表,进行瞬间状态,不是连续状态,连续状态需要使用top名称查看 更多常用参数请使用 man ps查看 ps ##显示所有进程详细信息 ps aux ##-u 显示某个用户的进程列表 ps -f -u www-data ## -C 通过名字或者命令搜索进程 ps -C apache2 ## --sort 根据进程cpu使用率降序排列,查看前5个进程 -pcpu表示降序 pcpu升序 ps aux --sort=-pcpu | he

liunx命令5 df、du、fdisk、磁盘管理相关命令

df查看命令 [[email protected] ~]# df              //查看分区 Filesystem     1K-blocks    Used Available Use% Mounted on /dev/sda3       18244476 5919104  11391948  35% / tmpfs             515244      72    515172   1% /dev/shm /dev/sda1         194241   2600