无法在目录上设置组 ID 位

无法在目录上设置组 ID 位

我创建了一个名为 的目录newDir,并更改了它所属的组mkdir newDir && chgrp test-group newDir

me当我这样做时我是用户。

调用stat newDir会产生预期的输出:

  File: newDir
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 801h/2049d  Inode: 10756102    Links: 2
Access: (0755/drwxr-xr-x)  Uid: ( 1001/      me)   Gid: ( 1003/test-group)
Access: 2018-01-27 17:03:07.514864274 +0100
Modify: 2018-01-27 17:03:07.514864274 +0100
Change: 2018-01-27 17:05:08.317543163 +0100
 Birth: -

后来,以 user 身份登录otherUser,我尝试使用 来设置目录上的组 ID (setgid) 权限位chmod g+s newDir

令人失望的是,我看到stat权限没有改变。不过,我在 stderr 上没有收到错误,并且命令的结果chmod为 0,如 所示echo $?

为什么chmod g+s newDir没有效果呢?

我使用的是 Arch Linux 4.14.13。

答案1

chmod g+s newDir以用户身份执行时未成功的原因otherUser是它otherUser不是组的一部分test-group,而组是 的组newDir

切换到属于 的用户test-group并且做的chmod g+s newDir工作很好。

答案2

添加到马蒂亚斯的答案中,如果你想以数字和绝对的方式进行,那就是

chmod 2755 newDir

如果您想将自己添加到您所定位的群组中:

usermod -a -G otheruser test-group
newgrp

有时newgrp似乎没有刷新组,因此您可能需要重新登录。

奇怪的是,一个人必须是他们试图为其设置 GUID 位的组的一部分,并且它失败而没有错误,但事实就是如此。

相关内容