关于ftp与SELinux的冲突问题
关于ftp与SELinux的冲突问题 1.问题背景 2.遇到的问题 3.问题解决的方法 1.ai的方法 为什么本地能写、FTP 不能写? 嫌疑一:write_enable 没开(最常见!) 嫌疑二:SELinux 拦住了 ftpd 兜底:看日志,让服务器自己告诉你原因 建议的排查顺序 2.我看出了什么 第 2 步:临时关掉 SELinux 做隔离测试 第 3 步:回客户端 lftp 重试 看结果分支判断 3.我的解决方案 4.给我们的警示 1.问题背景 首先这个问题诞生于如此条件下,我在跟随佳乐老师创建完lisi,zhangsan,wangwu之后呢,我就用lisi作为用户登录服务器node1,这里面设置了禁锢操作,路径是/export/public,而public里面拥有2个文件夹.一个是logs,另一个是src,同时设置了黑白名单,张三设置在黑名单,王五和李四设置在白名单 2.遇到的问题 1.遇到的问题其实就是,在我用lisi把客户端的根目录下的a.log,发送给服务器的logs目录,无法操作 2.后来,我在logs目录下创建文件夹也是无法操作的,也是显示权限不足 但是呢,我在服务器的这个logs目录下创建文件夹是可以创建的 3.就很奇怪,再去服务器是可以搞定的,是可以创建文件夹的,但是在客户端是没有办法进行创建的,我当时以为是logs的权限设置的不对,用的是root创建,权限大的缘故,但是其实并不是如此的,后面我在服务器用了lisi照样是可以创建的 4.后来,我仔细检查了这些文件夹的权限,并再次赋权,这次显然也是不行的 3.问题解决的方法 解决的办法,后来,我把我的问题,这些比较奇怪的地方,我问了千文,后来,在他的帮助之下我成功了,在客户端我成功的在服务器的logs上面创建了文件夹,这意味着什么呢,显然这意味着,我可以把客户端家目录的a.log上传给服务器的logs里面,结果显然和我想的一样 下面是千文告诉我的解决方案,让我一步一步排查,最后成功找到了问题关键所咋 1.ai的方法 这个对比信息非常关键!它直接帮我们排除了文件系统权限问题。 为什么本地能写、FTP 不能写? 本质区别在于执行写入的"身份"不同: 场景 执行者 受什么约束 本地 mkdir lisi 自己的 shell 进程 只看文件系统的 rwx 权限 ✅ FTP mkdir vsftpd 守护进程代为执行 受 vsftpd.conf 开关 + SELinux 对 ftpd 的策略双重约束 ❌ 所以本地能写,完全不能证明 FTP 也能写。问题 100% 卡在 FTP 守护进程这一层。下面两个是头号嫌疑。 ...