如何允许 Apache 和 sftp 用户在用户公共文件夹中写入?

如何允许 Apache 和 sftp 用户在用户公共文件夹中写入?

要求:

  1. sftp 用户需要能够通过 sftp 维护其帐户的网站。我为他们创建了一个“sftponly”组。

  2. Apache(用户:www-data)需要能够在这些用户的“www”文件夹中读取、写入和执行。例如,Wordpress 自动更新功能应该可以在不指定 ftp 凭据的情况下运行。

我遵循的文件结构如下:

/home/<username>/www/<domain.tld>/public

我设法使任一要求都能实现,但不能使两个要求同时实现。

这是我目前创建新用户所遵循的流程:

adduser <username>
usermod -G sftponly <username>
chown root:root /home/<username>
chmod 755 /home/<username>
cd /home/<username>
mkdir www
chown -R <username>:sftponly *
chown -R www-data:www-data /home/<username>/www
chmod -R 770 /home/<username>/www

我怎样才能满足这两个要求?

系统:Ubuntu 14.04,Apache 2.4.7

答案1

我相信满足这两个要求的最简单方法可能是利用访问控制列表:

ACL -- Arch-Wiki

只需简单地添加另一个组即可:

setfacl -mR "g:sftponly:rw" /home/<username>/www

如果您不能或不想使用 ACL,我建议您查看以下文档:

SCPOnly

SCPOnly 是一个特殊的 shell,可以与 chroot jails 和 PAM 配合使用,以更安全地允许用户远程访问。

相关内容