技术宅的结界

 找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 11161|回复: 1
收起左侧

【LAMP】CentOS:解决SELinux阻碍vsftpd的问题

[复制链接]

1090

主题

2609

帖子

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
237
威望
495 点
宅币
21495 个
贡献
45957 次
宅之契约
0 份
在线时间
2069 小时
注册时间
2014-1-26
发表于 2015-1-2 21:43:06 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有帐号?立即注册→加入我们

x
VSFTPD是一个FTP服务器程序,然后SELinux是CentOS的防火墙组件。由于vsFTPd没有被SELinux信任,大家经常会遇到的FTP问题是:

226 Transfer done (but failed to open directory).(传输完成,但是打开路径失败)
550 Failed to change directory(更改路径失败)
553 Could not create file.

或者干脆在发送了LIST命令以后,服务器没响应,超时断开。

遇到这样的问题,通常可以假定是vsFTPd没有足够的权限,很有可能是被SELinux阻止了。网络上流行的解决办法是直接关闭SELinux,但是我觉得不妥,有更好的解决办法的。
为了确定是不是这个问题,我们需要先试着关闭SELinux,看是不是就是它导致的。
[Bash shell] 纯文本查看 复制代码
setenforce 0 #暂时让SELinux进入Permissive模式
运行完以后再尝试,如果FTP能取得目录、上传下载,那么证明就是SELinux导致的。

解决办法:运行 getsebool -a | grep ftpd 判断查看权限。
[Bash shell] 纯文本查看 复制代码
getsebool -a | grep ftpd
通常会显示如下内容:
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
ftpd_connect_db --> off
ftpd_use_passive_mode --> off
ftp_home_dir --> off
其中,ftp_home_dir和allow_ftpd_full_access必须为on才行。
运行以下命令:
[Bash shell] 纯文本查看 复制代码
setsebool -P ftp_home_dir 1
setsebool -P allow_ftpd_full_access 1
注意这两条命令一般需要花上十几秒钟才能运行完(也许是我的VPS不太好吧)
运行完了以后,我们再重新恢复SELinux进入Enforcing模式。
[Bash shell] 纯文本查看 复制代码
setenforce 1 #进入Enforcing模式
如果不出意外的话,vsFTPd就可以正常上传下载文件了。

但是如果就此问题还没解决的话,可能是FTP访问的目录属性不够。建议用 chmod -R 777 路径 将路径读写属性设置为777,再尝试,通常也能解决问题。
回复

使用道具 举报

1090

主题

2609

帖子

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
237
威望
495 点
宅币
21495 个
贡献
45957 次
宅之契约
0 份
在线时间
2069 小时
注册时间
2014-1-26
 楼主| 发表于 2015-1-21 03:59:08 来自手机 | 显示全部楼层
不知道这两个指令都做了啥,那么慢

本版积分规则

QQ|申请友链||Archiver|手机版|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2021-11-29 01:44 , Processed in 0.035142 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表