ディレクトリのchmod g + sが無視されるのはなぜですか?

ディレクトリのchmod g + sが無視されるのはなぜですか?

共有しようとしているgit(実際にはgit-annex)リポジトリがあり、そのいくつかはいくつかのディレクトリにset-group-idビットを設定することに関連しています。これはDebian GNU / Linux Stretchボックスのext4ファイルシステムにあります。奇妙な理由でchmod g+s DIRECTORY省略されます(chmod読みやすくするためにブロックの周りに空白行が追加されます):

$ stat objects
  File: objects
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd06h/64774d    Inode: 12353692    Links: 260
Access: (0775/drwxrwxr-x)  Uid: ( 1000/ anthony)   Gid: ( 1025/git-books)
Access: 2018-07-30 14:43:13.831641743 -0400
Modify: 2018-07-28 14:28:14.970667931 -0400
Change: 2018-07-30 14:46:38.179597449 -0400
 Birth: -

$ chmod g+s objects
$ echo $?
0

$ stat objects
  File: objects
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd06h/64774d    Inode: 12353692    Links: 260
Access: (0775/drwxrwxr-x)  Uid: ( 1000/ anthony)   Gid: ( 1025/git-books)
Access: 2018-07-30 14:43:13.831641743 -0400
Modify: 2018-07-28 14:28:14.970667931 -0400
Change: 2018-07-30 14:50:43.355539381 -0400
 Birth: -

これまでに確認した内容は次のとおりです。

  • nosuid動作を妨げる可能性のある奇妙なインストールオプション(例:)はないようです。 fstabを確認しましたが/proc/mounts、表示されます。/dev/mapper/slow-srv /srv ext4 rw,relatime,nobarrier,errors=remount-ro,stripe=384,data=ordered 0 0
  • ディレクトリに奇妙なACLがないようですsetfacl -b objects。これを行うと、chmodはまだ機能しません。
  • straceon は、chmodシステムコールが成功し、sgid ビットがセットされたことを示します。
    fchmodat(AT_FDCWD, "annex", 02775) = 0
  • 同じファイルシステムの他のディレクトリには set-group-id ビットが設定されています。実際には、同じセッションの他のgit-annexリポジトリに以前にいくつかを設定しました。

答え1

知ってみたら、数日前にグループを作って本人も追加したが、私の考え新しいSSH接続ですが、そうではありません。 OpenSSHの接続再利用機能(ControlMaster//など)を使用しているので、ControlPath実際に約10日前から接続にログインしていて、私のセッション(プロセス)に新しいグループが設定されていません。でこれを確認しましたid

ログイン後、ssh -o ControlPath=none HOST私のセッションにグループがあり、有効であることをid確認しました。git-bookschmod g+s

許可拒否エラーが表示されない理由は、標準でこれらの動作を要求しているようです。ファイル用実装では、次のビットを無視できます。

呼び出しプロセスに適切な権限がなく、ファイルのグループIDが有効なグループIDまたは補足グループIDのいずれかに一致せず、ファイルが通常のファイルである場合)実行から)をクリアする必要があります。

他の実装定義の制限により、モードの S_ISUID および S_ISGID ビットが無視される可能性があります。

シングルUnix仕様v4 2018バージョン、chmodhttp://pubs.opengroup.org/onlinepubs/9699919799/functions/chmod.html(登録が必要な場合があります)。

おそらくエラーを返すのは正常で一貫性がないかもしれません☹。

関連情報