vsftp 登录报500错误,以及登录成功后无法显示目录列表的解决方案:500 OOPS: cannot change directory:/home/

1、问题:vsftp登录报错”500 OOPS: cannot change directory:/home/*******”

解决:

 A、首先检查权限问题;
 B、

ftp服务器连接失败,错误提示:

500 OOPS: cannot change directory:/home/*******

500 OOPS: child died

出现以上错误后开始用以下方法解决分别添加两个FTP账户 并为其指定专属FTP账户目录:

/usr/sbin/adduser -d /home/ftpname1_dir -g ftp -s /sbin/nologin ftpname1
/usr/sbin/adduser -d /home/ftpname2_dir -g ftp -s /sbin/nologin ftpname2

修改vsftpd.conf配置文件 添加 如下一行 为FTP指定账户(多个FTP账户用英文逗号分隔):

ftp_username=ftpname1,ftpname2

重启FTP服务器 客户端重新登录FTP 发现错误提示没有了,登录成功,一切正常,但是问题又来了,对目录没有rwx权限,开始以为配置没生效进错目录了,后来切换成home根目录后发现 其他目录都可以正常访问,唯独这个专属的FTP账户目录没有rwx操作权限,也没有错误提示

后来再网上查询了好多方法都说 关闭selinux,但是关闭selinux毕竟不是很乐意,毕竟影响安全么?

当你遇到以上问题时,试着在输入以下命令解决

(一、)[root@ zhaiqutianshangxing vsftpd]#setsebool -P ftpd_disable_trans 1

                [root@ zhaiqutianshangxing vsftpd]#service vsftpd restart

                第一行中的-P参数是为了以后不需要每次开机都输入这个命令

结果问题又来了,提示setsebool is not set ??? 此命令执行不成功,继续如下第二种方法

(二、)或使用以下解决:
                [root@ zhaiqutianshangxing ~]#/usr/sbin/setsebool -P ftp_home_dir 1

恭喜,执行成功了, 可遗憾的是问题还没有解决  于是遇到如下构思~

2、使用setsebool -P ftpd_disable_trans 1   //加-P表示永久性
 提示错误:

[root@ zhaiqutianshangxing vsftpd]# setsebool -P ftpd_disable_trans 1
libsemanage.dbase_llist_set: record not found in the database (No such file or directory).
libsemanage.dbase_llist_set: could not set record value (No such file or directory).
Could not change boolean ftpd_disable_trans
Could not change policy booleans

解决方法:
可能直接使用下面这个一条就可以解决了:
[root@ zhaiqutianshangxing ~]# /usr/sbin/setsebool -P ftp_home_dir 1

再试试,

 

如果还是不行的话再使用下面完全方式:
[root@ zhaiqutianshangxing vsftpd]# setsebool allow_ftpd_full_access 1
[root@ zhaiqutianshangxing vsftpd]# setsebool allow_ftpd_use_cifs 1
[root@ zhaiqutianshangxing vsftpd]# setsebool allow_ftpd_use_nfs 1
[root@ zhaiqutianshangxing vsftpd]# setsebool -P ftp_home_dir 1 
[root@ zhaiqutianshangxing vsftpd]# setsebool httpd_enable_ftp_server 1
[root@ zhaiqutianshangxing vsftpd]# setsebool tftp_anon_write 1
[root@ zhaiqutianshangxing vsftpd]# service vsftpd restart
关闭 vsftpd:[确定]
为 vsftpd 启动 vsftpd:[确定]
[root@ zhaiqutianshangxing vsftpd]# getsebool -a | grep ftp
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> on
allow_ftpd_use_cifs --> on
allow_ftpd_use_nfs --> on
ftp_home_dir --> on
ftpd_connect_db --> off
httpd_enable_ftp_server --> on
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off
tftp_anon_write --> on

重启vsftpd,废了好大劲终于问题解决了,嘎嘎,乐一下。

你可能感兴趣的:(linux,LANMP技术专栏,Linux技术学习之路)