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,废了好大劲终于问题解决了,嘎嘎,乐一下。