让用户在运行 vsftpd 的 Debian 上通过 ftp 写入 /var/www

让用户在运行 vsftpd 的 Debian 上通过 ftp 写入 /var/www

我们的一个开发箱运行 debian 和 VSFTPD,我想允许一些选定的用户写入/var/www/testsite其子目录。

他们可以通过主目录中的符号链接进行浏览/var/www,但无法写入。无论使用 FTP 还是 SFTP,都没有关系。

有什么想法吗?我发现这个问题很难用 Google 搜索。

答案1

您对 /var/www/ 和 /var/www/testsite/ 的权限是什么?

我的建议是给予 /var/www/testsite/ 一个组(例如 testsiteGroup),确保 /var/www/testsite 对组具有 rw 权限,然后将用户添加到组 testsiteGroup。

chgrp -R testsiteGroup /var/www/testsite/ 
chmod g+w /var/www/testsite/ 
usermod -a -G testsiteGroup # this wil be done for each user, and the -a is critical 
                            # the -a appends group to users groups, without -a you will
                            # be replacing the users groups with the one listed 

答案2

如果您通过 SFTP 使用完整身份验证(您应该这样做,以便进行记帐),那么 vsftpd 将使用用户的权限来修改文件。

因此,有两种解决方案:

  • 将用户添加到 Web 服务器正在运行的组中(通常www-datawww
  • 使用 ACL 并将默认 ACL 添加到 中的目录/var/www,这更加细粒度,但分区需要使用acl标志进行挂载

如果您使用匿名访问或 FTP(本质上不安全),我强烈建议您采用第二种方式。

相关内容