chcon命令_Linux chcon 命令用法详解:修改对象(文件)的安全上下文 SELinux

chcon命令_Linux chcon 命令用法详解:修改对象(文件)的安全上下文

chcon命令是修改对象(文件)的安全上下文,比如:用户、角色、类型、安全级别。也就是将每个文件的安全环境变更至指定环境。使用--reference选项时,把指定文件的安全环境设置为与参考文件相同。chcon命令位于/usr/bin/chcon。 语法 chcon [选项]... 环境 文件... chcon [选项]... [-u 用户] [-r 角色] [-l 范围] [-t 类型] 文件... chcon [选项]... --reference=参考文件 文件... 选项 -h, --no-dereference:影响符号连接而非引用的文件。 --reference=参考文件:使用指定参考文件的安全环境,而非指定值。 -R, --recursive:递归处理所有的文件及子目录。 -v, --verbose:为处理的所有文件显示诊断信息。 -u, --user=用户:设置指定用户的目标安全环境。 -r, --role=角色:设置指定角色的目标安全环境。 -t, --type=类型:设置指定类型的目标安全环境。 -l, --range=范围:设置指定范围的目标安全环境。 以下选项是在指定了-R选项时被用于设置如何穿越目录结构体系。如果您指定了多于一个选项,那么只有最后一个会生效。 -H:如果命令行参数是一个通到目录的符号链接,则遍历符号链接。 -L:遍历每一个遇到的通到目录的符号链接。 -P:不遍历任何符号链接(默认)。 --help:显示此帮助信息并退出。 --version:显示版本信息并退出。 实例 如果你想把这个ftp共享给匿名用户的话,需要开启以下: chcon -R -t public_content_t /var/ftp 如果你想让你设置的FTP目录可以上传文件的话,SELINUX需要设置: chcon -t public_content_rw_t /var/ftp/incoming 允许用户HHTP访问其家目录,该设定限仅于用户的家目录主页: setsebool -P httpd_enable_homedirs 1 chcon -R -t httpd_sys_content_t ~user/public_html 如果你希望将samba目录共享给其他用户,你需要设置: chcon -t samba_share_t /directory 共享rsync目录时: chcon -t public_content_t /directories
阅读全文
seinfo命令_Linux seinfo 命令用法详解:查询SELinux的策略提供多少相关规则 SELinux

seinfo命令_Linux seinfo 命令用法详解:查询SELinux的策略提供多少相关规则

seinfo命令是用来查询SELinux的策略提供多少相关规则,一个主体进程能否读取到目标文件资源的重点是在于SELinux的策略以及策略内的各项规则,然后再通过该规则的定义去处理各项目标文件的安全上下文,尤其是“类型”部分。SELinux的策略与规则管理相关命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。 语法 seinfo(选项) 选项 -A:列出SELinux的状态、规则布尔值、身份识别、角色、类型等所有信息。 -t:列出SELinux所有类型(type)的种类。 -r:列出SELinux所有角色(role)的种类。 -u:列出SELinux所有身份识别(user)的种类。 -b:列出所有规则的种类(布尔值)。 实例 列出与httpd有关的规则: seinfo -b | grep httpd
阅读全文
sesearch命令_Linux sesearch 命令用法详解:查询SELinux策略的规则详情 SELinux

sesearch命令_Linux sesearch 命令用法详解:查询SELinux策略的规则详情

使用seinfo命令可以查询SELinux的策略提供多少相关规则,如果查到的相关类型或者布尔值,想要知道详细规则时,使用sesearch命令查询。SELinux的策略与规则管理相关命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。 语法 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命令_Linux getsebool 命令用法详解:查询SElinux策略内各项规则的布尔值 SELinux

getsebool命令_Linux getsebool 命令用法详解:查询SElinux策略内各项规则的布尔值

getsebool命令是用来查询SElinux策略内各项规则的布尔值。SELinux的策略与规则管理相关命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。 语法 getsebool [-a] [布尔值条款] 选项 -a:列出目前系统上面的所有布尔值条款设置为开启或关闭值。 实例 查询本系统内所有的布尔值设置状况: getsebool -a NetworkManager_disable_trans --> off allow_console_login --> off allow_cvs_read_shadow --> off allow_daemons_dump_core --> on ....(底下省略).... 查询httpd_enable_homedirs是否为关闭,若没关闭,请关闭它: getsebool httpd_enable_homedirs setsebool -P httpd_enable_homedirs=0 //0是关闭 1是开启
阅读全文
setsebool命令_Linux setsebool 命令用法详解:修改SElinux策略内各项规则的布尔值 SELinux

setsebool命令_Linux setsebool 命令用法详解:修改SElinux策略内各项规则的布尔值

setsebool命令是用来修改SElinux策略内各项规则的布尔值。setsebool命令和getsebool命令是SELinux修改和查询布尔值的一套工具组。SELinux的策略与规则管理相关命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。 语法 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...
阅读全文
semanage命令_Linux semanage 命令用法详解:默认目录的安全上下文查询与修改 SELinux

semanage命令_Linux semanage 命令用法详解:默认目录的安全上下文查询与修改

semanage命令是用来查询与修改SELinux默认目录的安全上下文。SELinux的策略与规则管理相关命令:seinfo命令、sesearch命令、getsebool命令、setsebool命令、semanage命令。 语法 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(/.*)?"...
阅读全文
restorecon命令_Linux restorecon 命令用法详解:恢复文件的安全上下文 SELinux

restorecon命令_Linux restorecon 命令用法详解:恢复文件的安全上下文

restorecon命令用来恢复SELinux文件属性即恢复文件的安全上下文。 语法 restorecon [-iFnrRv] [-e excludedir ] [-o filename ] [-f filename | pathname...] 选项 -i:忽略不存在的文件。 -f:infilename 文件 infilename 中记录要处理的文件。 -e:directory 排除目录。 -R/-r:递归处理目录。 -n:不改变文件标签。 -o/outfilename:保存文件列表到 outfilename,在文件不正确情况下。 -v:将过程显示到屏幕上。 -F:强制恢复文件安全语境。 实例 假设CentOS安装了apache,网页默认的主目录是/var/www/html,我们经常遇到这样的问题,在其他目录中创建了一个网页文件,然后用mv移动到网页默认目录/var/www/html中,但是在浏览器中却打不开这个文件,这很可能是因为这个文件的SELinux配置信息是继承原来那个目录的,与/var/www/html目录不同,使用mv移动的时候,这个SELinux配置信息也一起移动过来了,从而导致无法打开页面,具体请看下面的实例: /*使用CentOS举例,如果默认没有安装apache,确保网络连接,使用下面的命令安装*/ [[email protected] ~]# yum install httpd /*我们在root的家目录新建一个html文件*/ [[email protected] ~]# pwd /root [[email protected] ~]# vi index.html /*随便输入一段文字,保存退出*/ welcome to www.linuxde.net /*将这个文件mv到网页默认目录下*/ [[email protected] ~]# mv index.html /var/www/html/ /* * 这个时候我们使用firefox浏览器输入127.0.0.1/index.html发现打不开, * 查看一下SELinux的日志文件,发现了下面这一段报错信息,从这个报错信息不难看出, * 进程httpd访问网页主目录中的index.html时被SELinux阻止,原因是因为,SELinux配置信息不正确, * 正确的SELinux配置信息应该是scontext=后面的部分, * 而index.html文件的SELinux配置信息却是tcontext=后面的部分, * 从tcontext=的第三段“admin_home_t”不难看出,这个文件的SELinux配置信息是root用户家目录的。 */ type=AVC msg=audit(1378974214.610:465): avc: denied { open } for pid=2359 comm="httpd" path="/var/www/html/index.html" dev="sda1" ino=1317685...
阅读全文