解决Centos下vsftp无法上传文件的问题,附vsftp配置详解

重量网络最近买了一个腾讯云的 VPS,一直在折腾着,偶然请我帮忙敲几行命令解决一些小问题。

这不,今天他通过 yum 在线安装了一个 vsftp 后,发现不太会用,就按照网上的教程东搞西搞。最后发现无法上传文件了,就给我操作了一把。

用 SecureCRT 远程登录后,我做了如下检查:

①、打开了 vsftp 配置文件(/etc/vsftpd/vsftpd.conf)检查 write_enable 状态,发现正常:

[root@VM_72_108_centos /]# cat /etc/vsftpd/vsftpd.conf | grep write_enable
write_enable=YES
#anon_mkdir_write_enable=YES
[root@VM_72_108_centos /]#

②、查看 ftp 用户是否具备目录的读写权限,发现也是可行的 775 状态(www 组)。

[root@VM_72_108_centos wwwroot]# ll
total 8
drwxrwxr-x 3 www www 4096 Jun 12 12:34 default
drwxrwxr-x 9 www www 4096 Jun 12 14:54 weixin.weightwl.com

③、在命令提示符 CMD 中使用 ftp,可获取到一些 explore 看不到的报错信息,便于资料搜索:

解决Centos下vsftp无法上传文件的问题,附vsftp配置详解

于是在百度搜索了下如下报错信息:

200 PORT command successful. Consider using PASV.
      425 Failed to establish connection. 

最终,在一个 linux 论坛才找到了如下解决办法:

作者说这个问题在 Centos 上才会出现,Redhat 就没有,难怪我在公司都没见过这问题。

解决办法:

①、查看 ftp 的 Selinux 状态:sestatus -b | grep ftp

②、在结果中可以看到: ftp_home_dir  off

③、将状态改为 on:setsebool -P  ftp_home_dir  on

④、重启 vsftp 服务:service vsftpd restart

有点纳闷的是,他的服务器根本就没开 selinux,所以第②步根本没结果,理论上,这个解决办法应该没效果才对,可实际上,全部执行完成之后,发现可以上传文件和新建文件夹了。我去,还真是诡异,总之解决了问题就好。


张戈额外补充一条 VPS 常用的新增 FTP 帐号的命令行,方便定义不同的 ftp 帐号:

useradd -g www -d /home/www/zhang.ge -s /sbin/nologin username
# -g 表示所属用户组,请根据实际选择
# -d 表示登录后的工作目录,请指定所要指向的网站根目录即可。
# -s /sbin/nologin 表示设定此账号仅用于 ftp,不允许登录到系统。
#username 新增的用户名,请自定义。
passwd username
#如上使用 passwd 设定 ftp 用户的密码。

下面附上 vsftp.conf 的详细的配置参数说明:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值