FTP 不显示文件或目录

FTP 不显示文件或目录

我可以登录 FTP 但看不到任何文件或文件夹。

我的 iptables 如下所示

-A 输入 -p udp -m udp --dport ftp-data -j 接受
-A 输入 -p udp -m udp --dport ftp -j 接受
-A 输入 -p tcp -m tcp --dport https -j 接受
-A 输入 -p tcp -m tcp --dport http -j 接受
-A 输入 -p tcp -m tcp --dport ftp-data -j 接受
-A 输入 -p tcp -m tcp --dport ftp -j 接受

当我从服务器本身通过 ftp 连接到 localhost 时,出现以下错误:

230 登录成功。
远程系统类型为 UNIX。
使用二进制模式传输文件。ftp
> debug
正在调试(debug=1)。ftp
> ls
ftp:setsockopt(忽略):权限被拒绝
---> PASV
227 进入被动模式 (127,0,0,1,221,184)
---> LIST
150 这里是目录列表。
226 目录发送 OK。
ftp>

从被动切换到主动给出了同样的错误:

ftp> active
被动模式关闭。
ftp> ls
ftp:setsockopt(忽略):权限被拒绝
---> PORT 127,0,0,1,233,166
200 PORT 命令成功。考虑使用 PASV。---
> LIST
150 目录列表如下。226
目录发送成功。ftp
>


被动模式不应该工作,因为我没有打开或指定端口范围,但主动模式应该可以使用这些设置,对吗?

更新 1

配置文件 VSFTPD:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
listen=YES
log_ftp_protocol=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=NO

另一点需要注意的是:我使用自己的用户登录到 /home/user,但看不到任何文件夹。但是当我使用 cd 转到 / 时,文件夹会显示出来,且没有错误消息。

答案1

根据评论,禁用 SELinux 似乎已解决问题。我现在建议:

  1. 使用 将其重新打开setenforce 1
  2. 用于ls -Z /path/to/ftp/home/folder检查您尝试通过 FTP 进入的目录的上下文,并查看上下文是否为“public_content_t”
  3. 如果没有,请使用restorecon(8)修正不正确的上下文,例如restorecon -R /path/to/ftp/home/folder

相关内容