我有一个新的 VPS 设置,使用 Debian + LEMP 堆栈。想知道如何自动将通过 FTP 上传到 /srv/www/siteroot 的新文件 chown/chgrp 到 www-data:www-data?
我认为这可以通过适当的 umask 来实现?
答案1
此umask
设置会影响新创建的文件和目录的权限位。它不会影响所有权。
您可以将上传文件的用户添加到该www-data
组。FTP 服务器中的 umask 022 将确保这些文件可由 Web 服务器读取但不可写入。
如果您还使用 PHP,则可以设置suphp
,以便上传的 php 脚本将以其所属用户的身份执行。这样,您的脚本也将能够写入您的文件(如果以 www-data 身份执行则不能)。
答案2
umask 设置文件的权限,而不是所有权。
您可以使用它chgrp www-data <dir>; chmod +s <dir>
来确保在该目录中创建的所有文件都归 www-data 组所有。我不认为有办法更改所有者,但如果有适当的组权限,那应该没有必要。
答案3
如果您通过 FTP 上传,则 FTP 服务配置文件中应该有一个选项,用于始终在上传的文件上设置特定的用户和/或组。