#selinux操作,操作系统centos7,系统selinux为打开状态。 破坏selinux标签: # cp /var/log/messages /root/ //只需反复复制到不同的目录,selinux标签就变了 admin_home_t变成了var_log_t,如果系统不开启selinux,新复制的文件标签为空。 # ll -Z /var/log/messages -rw-------. root root system_u:object_r:var_log_t:s0 /var/log/messages # ll -Z /root/messages -rw-------. root root unconfined_u:object_r:admin_home_t:s0 /root/messages # \mv /root/messages /var/log/ # ll -Z /var/log/messages -rw-------. root root unconfined_u:object_r:admin_home_t:s0 /var/log/messages //此时原来的标签已被破坏,原来为var_log_t,现在变成了admin_home_t,现在原进程往这个文件记录日志会被禁止。 # logger "this is log test" //写入这个命令会以某个用户身份向/var/log/message里写日志 # tail -f /var/log/message 日志没有反应 # chcon -t var_log_t /var/log/messages //修改标签 # ll -Z /var/log/messages -rw-------. root root unconfined_u:object_r:var_log_t:s0 /var/log/messages //改回了var_log_t # systemctl restart rsyslog //要重启使用/var/log/messages的服务才能生效 # logger 'this is test log' # tail -f /var/log/messages 日志写入成功 参考某个文件修改selinux标签: # ll -Z -rw-r--r--. root root unconfined_u:object_r:default_t:s0 test.txt # ll -Z /var/log/messages -rw-------. root root unconfined_u:object_r:var_log_t:s0 /var/log/messages # chcon --reference /var/log/messages /testdir/test.txt //参考messages 修改 test.txt \ # ll -Z /testdir/test.txt rw-r--rw-r--r--. root root unconfined_u:object_r:var_log_t:s0 /testdir/test.txt selinux httpd修改网站代码路径并添加selinux标签 # mkdir /data/www --> # touch /data/www/index.html # ll -Z /data/www/index.html rw-r--rw-r--r--. root root unconfined_u:object_r:default_t:s0 /data/www/index.html //此时标签为default_t \ # semanage fcontext -l | grep "/var/www/html" //httpd默认selinux标签 # semanage fcontext -a -t httpd_sys_rw_content_t "/data/www(/.)?" # semanage fcontext -l | grep /data/www //多了一条规则 # ll -Z /www/data //标签还没生效 # restorecon -R /data/www/ //根据selinux数据库规则递归重新更新标签 # semanage fcontext -d "/data/www(/.)?" //从数据库删除规则 # semanage fcontext -l | grep data/www 规则不存在了

selinux httpd端口修改: # semanage port -l | grep http //查看允许的端口
# systemctl start httpd # ss -ntl //服务正常访问 将httpd监听端口改为 9527 后,重启httpd服务失败 # semanage port -a -t http_port_t -p tcp 9527 //增加端口 # systemctl restart httpd //重启成功 selinux 修改ssh默认端口: # semanage port -l | grep ssh # semanage port -m -t ssh_port_t -p tcp 9527 //9527端口要已被添加到selinux的端口,随便加一个不行。 # semanage port -d -t ssh_port_t -p tcp 9527 //删除端口 selinux 设置bool布尔值 # getsebool -a \ # semanage boolean -l | grep samba_enable //查看临时生效与永久生效 # getsebool -a | grep samba_enable # setsebool samba_enable_home_dirs 1 //临时生效 # setsebool sambgetsebool -a | grep samba_enable 已开启 # setsebool -P samba_enable_home_dirs on //永久生效 # semanage boolean -l -C //查看修改过的布尔值