为什么所有者用户需要 sudo?

为什么所有者用户需要 sudo?

这是我发现的一个特定配置这里

我有两个用户共享一个公共文件夹:

$ ls /home
> drwsrws--- root   my-group ... common
> drwxr-xr-x diego  diego    ... diego 
> drwxr-xr-x diego2 diego2   ... diego2

该公用文件夹归一个组所有my-group,两个用户都已添加到该组。

如果我以用户身份登录diego,我就可以写入和编辑common文件夹中的文件。

但如果我使用diego2,我必须使用sudo才能编写和编辑它。

root我相信这与该文件夹的所有者以及指定的根有关diego......这存在吗?

我怎样才能以 身份写入和编辑common文件夹中的文件diego2

FWIW:我创建这种配置的原因是为了能够登录到不同的桌面会话plasma,而gnome不必共享所有设置。公用文件夹是我工作的地方(除非这是一台个人电脑,所以是编码项目),并且链接到每个文件夹中的相应文件夹。

答案1

Linux 会忽略目录中的 setuid,并使用 setgid 来设置在其中创建的文件的组。因此,当diego在 中创建文件时common,该文件归用户diego和组所有my-group。但是,用户的 umask 决定了初始权限所创建文件的权限是,并且默认只授予所有者写入权限。这意味着diego2将无法修改这些文件。

您的选择是:

  1. 更改现有文件的权限以添加组的写权限将两者的 umask 设置为,0002以便两个用户都可以创建组可写文件,这将影响全部他们创建的文件。这可能不是您想要做的。或者,
  2. common使用 ACL 为目录(以及其中的现有文件和目录)添加默认权限,以允许对其进行访问diegodiego2写入。(请参阅这个 U&L 答案

答案2

解决方案是确保文件夹内的子文件夹common都属于my-group一个组。

对于现有子文件夹:

$ chown -R diego:my-group /home/common

对于新的:

$ setguid g+sx /home/common/each-subfolder

=D

相关内容