解决ftp 连接失败。响应:500 OOPS: cannot change directory:

解决ftp 连接失败。响应:500 OOPS: cannot change directory:

ftp登录错误信息如下

C:\Users\PC>ftp 192.168.5.74
连接到 192.168.5.74220 Welcome to blah FTP service.
200 Always in UTF8 mode.
用户(192.168.5.74:(none)): fileftp
331 Please specify the password.
密码:
500 OOPS: cannot change directory:/home/fileftp
500 OOPS: 500 OOPS: child died
远程主机关闭连接。

原因:CentOS系统安装了SELinux,因为默认下是没有开启FTP的支持,所以访问时都被阻止了。

  • 解决方法1:关闭selinux,修改/etc/selinux/config文件或/etc/syscofnig/selinux设置SELINUX=
    disabled ,然后重启服务器。

  • 解决方法2:getsebool命令,是用来查询SElinux策略内各项规则的布尔值

[root@localhost vsftpd]# 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 --> off
ftpd_connect_db --> off
ftpd_use_fusefs --> off
ftpd_use_passive_mode --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
tftp_use_cifs --> off
tftp_use_nfs --> off

只要把allow_ftpd_full_access --> off,ftp_home_dir --> off改为on就可以了

[root@localhost vsftpd]# setsebool -P ftp_home_dir on
[root@localhost vsftpd]# setsebool -P allow_ftpd_full_access on

最后重启vsftpd服务

[root@localhost vsftpd]# service vsftpd restart
Shutting down vsftpd:                        [  OK  ]
Starting vsftpd for vsftpd:                  [  OK  ]

附getsebool命令语法。

getsebool [-a] [布尔值条款]

选项

-a:列出目前系统上面的所有布尔值条款设置为开启或关闭值。

setsebool命令
setsebool命令是用来修改SElinux策略内各项规则的布尔值。setsebool命令和getsebool命令是SELinux修改和查询布尔值的一套工具组。

语法

setsebool [-P] 布尔值=[0|1]

选项

-P:直接将设置值写入配置文件,该设置数据将来会生效的。

转载于:猪脚踏浪

你可能感兴趣的:(FTP,运维)