在使用ftp过程中出现 “500 OOPS:cannot change directory” 错误相关的情况分析。
情况一:
提示错误
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/home/oracle
Login failed.
原因:这是因为服务器开启了selinux,这限制了FTP的登录。
解决方法:
1.执行setsebool -P ftpd_disable_trans 1
然后重启ftp :service vsftpd restart
报错Boolean ftpd_disable_trans is not defined的话
([root@windos-test-01 vsftpd]# setsebool -P ftpd_disable_trans 1
Boolean ftpd_disable_trans is not defined)
先执行setsebool -P ftp_home_dir 1
查看getsebool -a |grep ftp_home 结果如下:
ftp_home_dir –> on
然后再照第1种方法执行;
3.如果还是不成功的话,执行以下命令,然后重启FTP
[root@windos-test-01 vsftpd]# setsebool allow_ftpd_full_access 1
[root@windos-test-01 vsftpd]# setsebool allow_ftpd_use_cifs 1
[root@windos-test-01 vsftpd]# setsebool allow_ftpd_use_nfs 1
[root@windos-test-01 vsftpd]# setsebool -P ftp_home_dir 1
[root@windos-test-01 vsftpd]# setsebool httpd_enable_ftp_server 1
[root@windos-test-01 vsftpd]# setsebool tftp_anon_write 1
[root@windos-test-01 vsftpd]# service vsftpd restart
情况二:
如果使用setsebool -P ftpd_disable_trans 1 //加-P表示永久性
提示错误:
[root@linux115 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@linux115 ~]# /usr/sbin/setsebool -P ftp_home_dir 1
再试试,
如果还是不行的话再使用下面完全方式:
[root@linux115 vsftpd]# setsebool allow_ftpd_full_access 1
[root@linux115 vsftpd]# setsebool allow_ftpd_use_cifs 1
[root@linux115 vsftpd]# setsebool allow_ftpd_use_nfs 1
[root@linux115 vsftpd]# setsebool -P ftp_home_dir 1
[root@linux115 vsftpd]# setsebool httpd_enable_ftp_server 1
[root@linux115 vsftpd]# setsebool tftp_anon_write 1
[root@linux115 vsftpd]# service vsftpd restart
关闭 vsftpd:[确定]
为 vsftpd 启动 vsftpd:[确定]
[root@linux115 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,即可解决问题。
SSL证书采用了技术含量比较高的加密技术。日后GDCA(数安时代)将会持续为大家推荐更多关于SSL证书的技术知识。让大家正确认识SSL证书,快速无误部署HTTPS安全协议。更多资讯,请关注GDCA。