![vsftpd 不列出目录内容](https://linux22.com/image/43036/vsftpd%20%E4%B8%8D%E5%88%97%E5%87%BA%E7%9B%AE%E5%BD%95%E5%86%85%E5%AE%B9.png)
我已经使用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
两个建议:
运行 FTP 的任何用户 ID 是否对 vsftpd 将用作其当前工作目录的“根”目录具有“写”权限? vsftpd 不需要可写的工作目录。
该
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