我之前问过这个问题,我知道其他人也问过,但我仍然很纠结,希望有人能提供缺失的信息来帮助我解决这个问题。我读完了所有我能找到的相关帖子,但似乎我已经按照所有建议做了。我不确定我遗漏了什么。
我在 Ubuntu 12.04 上运行 apache2。我有一组目录(以及其中的文件),它们由用户拥有www-data
。该www-data
组对我尝试写入的目录和文件具有写权限。
testuser
是该组的成员www-data
。当我尝试以 身份通过 sftp 进入这些目录中的任何一个时,出现权限错误testuser
。
如果我将这些目录和文件的所有权更改为testuser
,那么我就可以通过 ftp 访问它们。
应如何设置权限,以便组成员可以通过 ftp 进入目录并写入内容?我想创建一个来宾 ftp 帐户并将其添加到组中,但我需要先让它工作testuser
。
我手动添加了自己www-data
/etc/groups
。我还重新启动了 Apache,当这不起作用时,从命令行重新启动。我遗漏了什么?
write_enable=YES
在我的 中vsftpd.conf
chroot_local_user
被注释掉了。没有发生 chroot 现象。
答案1
请注意,尽管名称如此,vsftpd 并不是 SFTP 服务器,而是一个普通的 FTP 协议服务器。SFTP 通常由 ssh 守护进程处理。因此,您在 vsftpd 中所做的任何配置更改都不会影响 SFTP 传输。
该文件的所有者为上传者。您可能需要检查 SFTP 客户端的所有权和权限保留选项(在您的情况下为 WinSCP)。
(顺便说一句,我只是将评论重新格式化为答案)。
答案2
就我而言,将目标用户组设置为 ftp 用户的主要用户组很有帮助。
sudo usermod -g <group> <ftp_user>