1.美图
2.概述
菜鸟使用flashfxp遇到连接报错。
[21:36:19] [R] 530 Permission denied.
[21:36:19] [R] 连接失败 (连接已被客户端关闭)
搜索后发现,是因为linux设定root帐号不准连接,因此,我们在linux设定下,允许root连接即可(不推荐这么做,安全考虑)
vsftpd的配置,配置文件中限定了vsftpd用户连接控制配置。
- vsftpd.ftpusers:位于/etc/vsftpd目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。
- vsftpd.user_list:位于/etc/vsftpd目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。
- vsftpd.conf:位于/etc/vsftpd目录下。来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。
我设置的时候把fptusers和user_list的root给注释掉了,这样root账户就可以访问了。但如果是正式环境的话,尽量别这样操作,这样的安全性会降低很多。
这样做之后,仍然报错。
[21:42:03] [R] 500 OOPS: cannot change directory:/root
[21:42:03] [R] 连接失败
原来我之前在setsebool的时候,没有把端口打开。
500 OOPS: cannot change directory:/home/
原因是CentOS系统安装了SELinux,因为默认下是没有开启FTP的支持,所以访问时都被阻止了。
解决办法
//查看SELinux设置
# getsebool -a|grep ftp
ftpd_disable_trans –> off或者ftp_home_dir–>off
//使用setsebool命令开启
# setsebool ftpd_disable_trans 1或者# setsebool ftp_home_dir 1
//查看当前状态是否是on的状态
# getsebool -a|grep ftp
ftpd_disable_trans –> on
或者
ftp_home_dir–>on
//setsebool使用-P参数,无需每次开机都输入这个命令
# setsebool -P ftpd_disable_trans
或者
# setsebool -P ftp_home_dir 1
我的SELinux设置如下
[root@localhost ~]# getsebool -a|grep ftp
allow_ftpd_anon_write –> off
allow_ftpd_full_access –> off
allow_ftpd_use_cifs –> off
allow_ftpd_use_nfs –> off
ftp_home_dir –> on
ftpd_connect_db –> off
ftpd_use_passive_mode –> off
httpd_enable_ftp_server –> off
tftp_anon_write –> off
# service vsftpd restart
问题: 以root 从远程客户端 登录 FTP 一直密码错误。 发现不能以root 登录, 需要创建其它的用户。
创建一个test 用户后(如下):
useradd test;
passwd test;
可以登录 但是报 500 OOPS: cannot change directory:/home/test
解决办法:
创建用户的时候, 需要创建目录 以及赋予权限。