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

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

我最近在 Debian 上使用 VSFTPD 设置了一个 FTP 站点,但遇到了无法访问已上传目录的问题。文件没有问题,但当我尝试上传目录或切换到新上传的空目录时,出现以下错误:

无法更改目录。

如果我以 shell 身份进入并修改正确的权限,我可以毫无问题地访问目录。如果我以 shell 身份进入并创建一个新目录,也不会出现任何问题,这个问题似乎只出现在通过 FTP 客户端上传的目录中。

任何帮助都将不胜感激。我运行的是 Debian 7.5 (Wheezy),用于连接的客户端是 Windows 7 系统中的 WinSCP。我使用的是 chroot jail,用户被限制在他们的主目录中(不可写入)。

答案1

嗯,我认为可能有两个原因:

  1. 您以 的身份登录到 FTP 服务器anonymous,但上传的目录已chown被另一个用户占有,而他们拥有 的权限0600,因此这些目录对于守护进程映射到匿名用户的ftp(或 设定的另一个用户)不可用。ftp_usernamevsftpd

    尝试在您的中设置以下内容vsftpd.conf

    chown_uploads=YES
    chown_upload_mode=0644
    chown_username=ftp
    

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

  2. 您说上传的文件没有问题,但目录损坏。这让我觉得 有问题umask,也许它被设置为011或之类的值,033导致位execute被禁用,因此您无法列出目录。

    尝试通过将umask值设置为来022修复该问题vsftpd.conf

    anon_umask=022
    local_umask=022
    

相关内容