我们的一个开发箱运行 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-data
或www
) - 使用 ACL 并将默认 ACL 添加到 中的目录
/var/www
,这更加细粒度,但分区需要使用acl
标志进行挂载
如果您使用匿名访问或 FTP(本质上不安全),我强烈建议您采用第二种方式。