我最近在 Debian 上使用 VSFTPD 设置了一个 FTP 站点,但遇到了无法访问已上传目录的问题。文件没有问题,但当我尝试上传目录或切换到新上传的空目录时,出现以下错误:
无法更改目录。
如果我以 shell 身份进入并修改正确的权限,我可以毫无问题地访问目录。如果我以 shell 身份进入并创建一个新目录,也不会出现任何问题,这个问题似乎只出现在通过 FTP 客户端上传的目录中。
任何帮助都将不胜感激。我运行的是 Debian 7.5 (Wheezy),用于连接的客户端是 Windows 7 系统中的 WinSCP。我使用的是 chroot jail,用户被限制在他们的主目录中(不可写入)。
答案1
嗯,我认为可能有两个原因:
您以 的身份登录到 FTP 服务器
anonymous
,但上传的目录已chown
被另一个用户占有,而他们拥有 的权限0600
,因此这些目录对于守护进程映射到匿名用户的ftp
(或 设定的另一个用户)不可用。ftp_username
vsftpd
尝试在您的中设置以下内容
vsftpd.conf
:chown_uploads=YES chown_upload_mode=0644 chown_username=ftp
请注意,如果您已经更改或,则可能需要更改
ftp
为其他内容。ftp_username
guest_username
您说上传的文件没有问题,但目录损坏。这让我觉得 有问题
umask
,也许它被设置为011
或之类的值,033
导致位execute
被禁用,因此您无法列出目录。尝试通过将
umask
值设置为来022
修复该问题vsftpd.conf
:anon_umask=022 local_umask=022