selinux 的三個狀態:node
enforcing 強制linux
permissive 寬鬆vim
disabled 禁用 (注設置禁用須要修改配置文件)ssh
查看selinux狀態命令:spa
[root@node-0001 ~]# sestatus
SELinux status: disabledrest
[root@node-0001 ~]# getenforce
Disabled日誌
查看配置文件:server
[root@node-0001 ~]# cat /etc/selinux/config blog
臨時設置 0 寬鬆 1 強制遞歸
[root@node-0001 ~]# setenforce 1
setenforce: SELinux is disabled
[root@node-0001 ~]# getenforce
Disabled
固定配置
[root@node-0001 ~]# vim /etc/selinux/config
上下文
[root@node-0001 ~]# tar -zcf log1.gz.tar /var/log/
tar: Removing leading `/' from member names
[root@node-0001 ~]# tar -zcf /var/ftp/log2.gz.tar /var/log
tar: Removing leading `/' from member names
[root@node-0001 ~]# ls -Z log1.gz.tar #查看文件的上下文值
-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 log1.gz.tar
[root@node-0001 ~]# ls -Z /var/ftp/log2.gz.tar #查看上下文
-rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 /var/ftp/log2.gz.tar
[root@node-0001 ~]# ls -dZ /root/ #查看目錄的上下文值
[root@node-0001 ~]# ls -lZ /var/log/ #查看目錄下文件的上下值
修改文件的上下文值 chcon 命令
方法一:
[root@node-0001 ~]# chcon -t public_content_t log1.gz.tar
方法二:
[root@node-0001 ~]# tar -zcf log3.gz.tar /var/log
[root@node-0001 ~]# ls -Z log3.gz.tar
-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 log3.gz.tar
[root@node-0001 ~]# chcon --reference=/var/ftp/log2.gz.tar log3.gz.tar #修改上下文 參照文件/var/ftp/log2.gz.tar
方法三:
[root@node-0001 ~]# tar -zcf log4.gz.tar /var/log
[root@node-0001 ~]# mv log4.gz.tar /var/ftp/
[root@node-0001 ~]# ls -Z /var/ftp/
-rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 log2.gz.tar
-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 log4.gz.tar
drwxr-xr-x. root root system_u:object_r:public_content_t:s0 pub
[root@node-0001 ~]# restorecon /var/ftp/log4.gz.tar #恢復爲所在位置默認的上下文
[root@node-0001 ~]# ls -dZ /var/ftp/
drwxr-xr-x. root root system_u:object_r:public_content_t:s0 /var/ftp/
[root@node-0001 ~]# ls -Z /var/ftp/
-rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 log2.gz.tar
-rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 log4.gz.tar
drwxr-xr-x. root root system_u:object_r:public_content_t:s0 pub
[root@node-0001 ~]# restorecon -R /var/ftp/ #遞歸修改
打標籤,重啓後所有重置 /.autorelabel
[root@node-0001 ~]# touch /.autorelabel
[root@node-0001 ~]# reboot
調整selinux的布爾值
[root@node-0001 ~]# getsebool -a #查看全部
[root@node-0001 ~]# getsebool -a | grep samba #查看Samba的布爾值
[root@node-0001 ~]# setsebool samba_export_all_ro=on #更改布爾值
[root@node-0001 ~]# setsebool -P samba_export_all_ro=on #永久更改,重啓後依然有效
開啓seliunx日誌功能
[root@node-0001 ~]# yum list | grep shoot
setroubleshoot.x86_64 3.2.30-8.el7 base
setroubleshoot-plugins.noarch 3.0.67-4.el7 base
setroubleshoot-server.x86_64 3.2.30-8.el7 base
[root@node-0001 ~]# yum -y install setroubleshoot*
[root@node-0001 ~]# reboot
[root@node-0001 ~]# grep -i shoot /var/log/messages | tail -1
Apr 29 18:06:22 node-0001 setroubleshoot: SELinux is preventing /usr/sbin/sshd from read access on the file config. For complete SELinux messages run: sealert -l afc4e76a-2e23-4e4e-b4e6-282706cdeb6e [root@node-0001 ~]# sealert -l afc4e76a-2e23-4e4e-b4e6-282706cdeb6e