如何设置这些文件的正确所有权?

如何设置这些文件的正确所有权?

我需要该目录/var/www/(以及其中的所有内容)只能由授权用户修改。

我尝试这样做的方法是:

sudo groupadd webmasters
sudo usermod -G webmasters pi # My user is pi
sudo chown -R root:webmasters /var/www/
sudo chmod -R ug+rw /var/www/

...但我无法修改 中的任何内容/var/www/,也无法在其中创建新文件。

我究竟做错了什么?我该如何按照需要的方式进行设置?

我的设想是:

  • 群组中的每个人webmasters都可以创建、删除和编辑文件/var/www/
  • 所有新创建的文件/文件夹都属于root:webmasters
  • 所有新创建的文件都有权限775:-rwxrwxr-x
  • 伊斯兰国必不可少的没有人未经授权就能够拥有写入权限,或任何类型的 Setuid/Setgid 能力。 (写访问权限只能由 Root 授予。)

我对此采取了错误的方法吗?我的想法是正确的,但我只是把事情搞砸了?出了什么问题?

答案1

/etc/group通过命令将用户添加到文件中的组是不够的usermod -G。这会更新“数据库”,但在此更新之前已创建的任何 shell/进程将不会反映出拥有它们的用户pi已添加到此新组。

getent通常,您在询问 shell 时不想使用命令,而是使用命令id,或更具体地说id -a

例子

在这里,我刚刚将我的用户名添加saml到组中newgrp。该命令getent确认了这一点:

$ getent group newgrp
newgrp:x:10000:saml

但该命令id -a在我已经打开的一个 shell 中讲述了一个不同的故事:

$ id -a
uid=500(saml) gid=501(saml) groups=501(saml),502(vboxusers),503(jupiter)

如果我启动一个新 shell,我会看到newgrp

$ ssh localhost
Last login: Fri Jun 28 00:17:13 2013 from localhost.localdomain

$ id -a
uid=500(saml) gid=501(saml) groups=501(saml),502(vboxusers),503(jupiter),10000(newgrp)

相关内容