使用vsftpd时,FTP上传的权限不正确

我最近在Debian上使用VSFTPDbuild立了一个FTP站点,并且遇到了上传目录无法访问的问题。 文件是好的,但是当我尝试上传目录或更改为新上载的空目录时,出现以下错误:

无法更改目录。

如果我通过shell进入和chmod正确的权限,我可以访问目录没有问题。 如果我通过shell进入并创build一个新的目录,这也没有问题,这个问题似乎只是通过FTP客户端上传的目录。

任何帮助,这是非常感谢。 我正在运行Debian 7.5(Wheezy),我用来连接的客户端是Windows 7系统中的WinSCP。 我正在使用一个chroot监狱,用户被关进他们的主目录(这是不可写)。

那么我认为可能有两个原因:

  1. 您以anonymous身份login到FTP服务器,但是上传的目录被chown为另一个用户,并且它们的权限为0600 ,因此它们将不可用于由匿名用户映射到的ftp (或由ftp_username设置的其他用户) vsftpd守护进程。

    尝试在你的vsftpd.conf设置以下内容:

     chown_uploads=YES chown_upload_mode=0644 chown_username=ftp 

    请注意,如果您已经更改了ftp_usernameguest_username ,则可能需要将ftp更改为其他内容。

  2. 你说上传的文件是可以的,但是目录是坏的。 这使得我认为umask有什么问题,也许它被设置为类似于011033这样会导致execute位被禁用,因此你不能列出目录。

    尝试通过在vsftpd.conf中将umask值设置为022来解决这个问题:

     anon_umask=022 local_umask=022