ftp 连接失败。500 OOPS: cannot change directory:
ftp登录错误信息如下
C:\Users\PC>ftp 192.168.5.74 连接到 192.168.5.74。 220 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:直接将设置值写入配置文件,该设置数据将来会生效的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!