权限 - 允许两个用户完全访问目录

权限 - 允许两个用户完全访问目录

我有一个位于 的 Web 服务器目录/var/www/web。在其中一个文件内,假设create_dir.php,我正在创建一个目录mkdir()。我收到以下消息。

警告:mkdir():/var/www/web/create_dir.php 第 122 行中的权限被拒绝

现在,当我是文件或目录的所有者时,我可以运行此文件。但是,当我不是所有者时,我无法在 PhpStorm 中编辑文件。

我的用户被称为josh并且 apache2 用户是默认的www-data

我本质上需要创建一个组或一个特殊/神奇的用户,以便我可以随时运行和编辑文件。

注意:我已经看过这个超级用户答案但对我来说没用。我运行了以下命令来创建组:

sudo groupadd website

我运行以下命令来添加用户:

sudo usermod -a -G website josh
sudo usermod -a -G website www-data

我运行此命令将其添加到 web 文件夹:

sudo chgrp -R website /var/www/web

我运行了此命令,一旦我重新加载我的网站,我就收到一条禁止错误消息。

sudo chmod -R 770 /var/www/web

因此我运行了这个命令来查看网页:

sudo chmod -R 775 /var/www/web

现在我又回到了原点。

任何帮助都将受到赞赏。

答案1

Linux 中的共享目录可能会因所有权和权限而造成混淆。

对于这个特定的目录,/var/www/html/这里已经有答案了

在 /var/www 中工作时如何避免使用 sudo?

因此,让两个用户都成为 的成员www-data。恕我直言,没有必要创建新组。

要管理权限和文件所有权,请设置组和 setGID

sudo chgrp -R www-data /var/www/html
sudo chmod 2770 /var/www/html 

有关详细信息,请参阅https://www.gnu.org/software/coreutils/manual/html_node/Directory-Setuid-and-Setgid.html

... if a directory’s set-group-ID bit is set, newly created subfiles inherit the same group as the directory ...

重新启动你的 shell 或注销并重新登录以使会员资格生效。

如果您需要更细粒度的控制,您可以使用 ACL,但这可能有点过度。

有关 ACL 的其他信息,请参阅https://help.ubuntu.com/community/FilePermissionsACLshttp://brunogirin.blogspot.com/2010/03/shared-folders-in-ubuntu-with-setgid.html

第二个链接专门解决了这个确切的问题,如何使用 setGID 和 ACL 共享 /var/www/html。

相关内容