萌新的linux之旅18
安全上下文的更改
查看安全上下文
ls -Z
vim /etc/sysconfig/selinux
将getenforce开启,如果getenforce是关闭模式,setenforce无法更改
setenforce 0 #警告模式
修改后getenforce 为警告模式
setenforce 1
在修改之后getenforce 为强制拒绝模式
别的地方建立的文件移到
/var/ftp/pub
如果getenforce 在警告模式下
lftp 登陆后是可见的
如果getenforce 在强制拒绝模式下
lftp 登陆后是不可见的
因为安全上下文不符合,chcon修改后,安全上下文符合就能看到了
chcon 只是更改,并没有记录,开机就没了 。chcon :change file SELinux security context
-t : –type=TYPE : set type TYPE in the target security context
content:标签
更改过后,你重启selinux你会发现,你更改的上下文都没了,chcon只是更改,并没有记录下来
永久修改:semanage
semanage fcontext -l 查看安全上下文
–list List records of the specified object type
-a -t 在内核添加
–add Add a record of the specified object type
–type TYPE SElinux Type for the object
标签是直接写在内核的
semanage : - SELinux Policy Management tool
man semanage #查看semanage详细信息和更改格式
更改后需要重启selinux,因为改的是目录及目录内部的文件
想立即看到效果,不重启:
restorecon -RvvF (vv是因为不止一个文件) ##立即读取
restore file(s) default SELinux security contexts
-R, -r change files and directories file labels recursively (descend directories).
Note: restorecon reports warnings on paths without default labels only if called non-recursively or in verbose mode.
-v show changes in file labels, if type or role are going to be changed
-F Force reset of context to match file_context for customizable files, and the default file context,changing the user, role, range portion as well as the type.
然后再次登陆lftp,就可以看到了
查看selinux屏蔽的功能
getsebool -a | grep ftp
setsebool -P … on
重启开启生效
vim /etc/vsftpd/vsftpd.conf 开启上传权限,这个权限默认是开启的。
确定selinux是什么模式,如果是强制拒绝模式
单独setsebool开启写权限发现是不能生效的
将将pub下文件安全上下文改变
semanage fcontext -a -t public_content_rw_t ‘/var/ftp/pub(/.*)?’
restorecon 重读 -RvvF 注意r与f一定是大写
刷新成功是有提示的
setsebool -P frpd_anon_write on 开启写
vim /etc/vsftpd/vsftpd.conf 开启上传权限
重启服务
这里,注意,一定保证 pub目录权限是777
lftp登陆后,就可以上传了
如果pub/下放一个标签不同的文件,lftp 登陆后发现看不见
查看日志,分析解决方案
setroubleshoot-server… 提供解决方案的软件,系统日记只会记录,不会给出问题的解决方案,这个软件可以提供问题的解决方案
/var/log/audit/audit.log
专门存放selinux中的问题,但是不全
在message中有全面的信息,
其中:
run : sealert -l 159f537a-5ce3-4ea4-8a3c-f3e08aea9360
让你运行这一段代码,分析这个问题的详细解答
semanage fcontext -a -t FILE_TYPE ‘$FIX_TARGET_PATH’下面的是安全上下文所有的格式,不用去看
Then execute:
restorecon -v ‘$FIX_TARGET_PATH’
告诉你的是解决方案,后面的变量指的是文件的目标
运行之后,问题解除,可以显示出来了