共享主机环境的文件权限

共享主机环境的文件权限

我正在尝试设置一个共享托管环境,其中用户可以对一个或多个文件夹进行 SFTP 访问。考虑以下场景:

/var/www/包含多个代表域的目录。用户可以基于 ACL 添加、修改或删除目录中的文件,因此用户john可以完全访问/var/www/domain1.com和 ,/var/www/domain2.org但不能/var/www/domain3.de。当然,同时 Web 服务器必须能够读取所有目录中的文件。

我不完全明白如何确保一切安全,

  • 所有用户都被限制在/var/www/他们被允许查看的域(子文件夹)内
  • Apache 用户www-data仅具有所有文件夹的读取权限
  • PHP 对某些文件夹(如用户上传文件夹或日志文件夹)具有写权限/var/www/domain/
  • 通过 SFTP 上传的新文件会自动获得正确的权限,并且用户可以指定哪些文件夹可由 PHP 写入,而其他共享主机用户则无法访问

我所说的 PHP 是指 PHP-FPM 实例,其中每个域都是一个单独的条目pool.d,用户可以自由配置。

到目前为止,我的想法是添加一个名为的组sftp,并配置sshd将属于该组的用户监禁sftp/var/www/,允许他们进行密码验证并添加ForceCommand internal-sftp。然后,我将为里面的文件夹递归设置默认 ACL,/var/www/以便正确的用户可以访问正确的目录。但是我应该将文件夹的所有者用户和组设置为什么?我必须调整 umask 吗?相应的 PHP-FPM 池实例的适当用户和组是什么?

相关内容