1.对于selinux的启动以及文件查看命令。
enforcing 强制模式
permissive 警告模式
disabled 关闭
selinux getenforce 查看selinux模式
setenforce 0|1 更改selinux模式
0 警告模式
1 强制模式
打开配置文件vim /etc/sysconfig/selinux
正常状态下getenforce所看到的selinux的状态为Enforcing,当我们把配置文件里面的enforcing改为disable时,然后reboot,再次查看时selinux的状态为Disable
特别注意:每一次更改完配置文件之后都要reboot重起。
实验
当状态为enforcing时,看文件是否可以转移过来
当为强制模式enforcing时,不能看到转移过来的文件
当为警告模式permissive时,可以看到转移过来的文件
2.linux中安全上下文
lftp中只能查看pub下的文件,当把mnt下的文件转移到pub下。依旧不能查看,所以这时候就要更改文件的安全上下文,如下图所是,用chcon命令更改文件的安全上下文,然后再用lftp查看时候就可以看见文件了。
**ls -Z file|dir 查看文件安全上下文**
chcon -t public_content_t file **更改用户上下文 临时更改**
**在一个目录中,子文件的安全上下文和原目录一致时才能显示**
semanage fcontext -l **显示系统中所有安全上下文**
semanage fcontext -l | grep /var/ftp/ **过滤安全上下文**
semanage fcontext -l | grep /mnt
semanage fcontext -a -t public_content_t "/mnt/(/.*)?" **更改安全上下文"/zpy(/.*)?"表示匹配文件中所有字符,永久更**
restorecon -RvvF /mnt/ **对此文件加载**
3.Selinux对服务的影响
(1).不符合安全上下文的文件访问不到
(2).默认情况下不安全的功能是关闭的
getsebool -a | grep ftp **查看 ftp 服务功能状态**
setsebool -P ftp_home_dir on **开启本地上传**
-P:表示永久开启
getsebool -a | grep ftp 查看selinux对ftp服务的限制
setsebool -P ftpd_anon_write on **更改ftpd_anon_write 开关 允许本地用户上传**
图中查看ftp服务功能状态时候ftp home dir 处于关闭状态,所以将服务状态用setsebool命令打开后可以上传/etc/passwd文件。图中出现的550报错如下解释:
553 本地文件不支持
550 系统不支持此服务
530 认证失败
500 权限过大
4.查看日志解决selinux问题
当安全上下文等不匹配或者有问题时,我们可以查看日志,日志中有解决方法 前提是有setroubleshoot-3.2.17-2.el7.x86_64 软件
Selinux 日志存放位置:
cat /var/log/audit/audit.log 默认位置**
setroubleshoot-server.x86_64 可以将/var/log/audit/audit.log里面的日志经过处理存放到/var/log/messages**