我正在与两个用户合作:我和 www-data。默认情况下,每个用户都有自己的组。我希望能够轻松地向这两个用户授予读取、写入和/或执行权限,而不将这些权限授予公众。
我对 Linux 文件权限系统的理解是,如果我有以下文件:
test.php me:me 770
并且组 me 包含用户 me 和 www-data,那么这两个用户对文件 test.php 都具有完全权限。但是,这不起作用。我已将用户 www-data 添加到组 me 并将权限设置为 770,但 Apache 表示权限被拒绝。如果我将文件组更改为 www-data,则它看起来像
test.php me:www-data 770
文件加载正常。问题是我以用户 me 的身份通过 ftp 上传文件。更改组很容易,但如果每次上传新文件以更改组时都必须通过 SSH 进入服务器,那就变得非常繁琐。我的理解是,组的存在只是为了这样的情况,但我不明白为什么它不起作用。
答案1
将所有文件/目录的组更改为www-数据然后启用 setgid:
sudo chmod -R g+s /path/to/www/directory/
所有文件和目录都将使用www-数据从现在起。