ディレクトリにグループ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: -

後でユーザーとしてログインし、を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ためです。otherUsertest-groupnewDir

そのユーザーに切り替えられ、操作は正常にtest-group行われます。chmod g+s newDir

答え2

Mattiasの答えに加えて、数値的にそして絶対に行うには:

chmod 2755 newDir

ターゲットグループに自分を追加するには、次の手順に従います。

usermod -a -G otheruser test-group
newgrp

場合によっては、newgrpがグループを更新しないように見えるため、再度ログインする必要があります。

GUIDビットを設定したいグループの一部でなければならず、エラーなしで失敗することは奇妙ですが、それはすべてです。

関連情報