vsftpd 不列出目录内容

vsftpd 不列出目录内容

我已经使用FTP服务器设置vsftpd并启用了匿名上传和下载。我遇到的问题是,当我上传一个目录时,它会成功上传(我可以在服务器中看到它),但是下次我想检查该目录时,FTP客户端显示一个空目录!

登录时没有出现错误/var/log/vsftpd.log。该pub文件夹(匿名 ftp 用户的主文件夹)也具有写入权限。我测试了各种配置选项,但没有任何帮助!

我设置的最新配置选项如下:

anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
dirlist_enable=YES

我什至关闭了一次防火墙来测试它,但它没有改变任何东西!

答案1

两个建议:

  1. 运行 FTP 的任何用户 ID 是否对 vsftpd 将用作其当前工作目录的“根”目录具有“写”权限? vsftpd 不需要可写的工作目录。

  2. vsftpd.conf文件可以有一个hide_file指令。根据该指令指定的正则表达式,可能不允许匿名用户查看任何文件。

我过去在使用 vsftpd 时遇到过这个问题,我记得有一个 vsftpd.conf 设置导致了这个问题,所以请仔细阅读该配置文件,了解所有参数及其值。

答案2

感谢user81029的指出

sudo setsebool -P allow_ftpd_full_access 1

mount --bind解决了SELinux 上将文件夹放入 /var/ftp/后出现空 ftp 目录的问题

答案3

如果您的配置正确并且不是防火墙问题,那么很可能是 SELinux,就我而言,答案是:

setsebool -P allow_ftpd_full_access 1

来自手册页:

如果要允许 ftp 服务器登录到本地用户并读/写系统上由 DAC 管理的所有文件,则必须打开 allowed_ftpd_full_access 布尔值

答案4

/etc/vsftpd.conf 集合 中seccomp_sandbox=NO

为我解决了这个问题,报告为https://bugzilla.opensuse.org/show_bug.cgi?id=1173275

相关内容