次のディレクトリがあります
$ ls -al
total 16
drwxr-xr-x 4 root root 4096 Oct 21 14:50 .
drwxr-xr-x 24 root root 4096 Oct 21 11:28 ..
drwxrwx--- 8 root mygroup 4096 Jan 12 2022 foobar
作成されたすべての新しいファイルがデフォルトでグループfoobar
に属するように権限を設定する方法はありますか?mygroup
ベストアンサー1
setgid
ディレクトリビットの設定は、必要に応じて正確に実行する必要があります(Unixファミリーのオペレーティングシステムおよび/またはファイルシステムがこれをサポートしていると仮定)。
chmod g+s foobar
以降の権限は次のようにする必要があります。
drwxrws--- 8 root mygroup 4096 Jan 12 2022 foobar
私が正確に覚えている場合、UnixファミリーツリーのBSDブランチはデフォルトでファイルが作成されたディレクトリグループに基づいて新しいファイルのグループ所有者を設定するために使用されました。一方、SystemVベースのフォークは、ファイルを生成したプロセスのデフォルトグループに基づいてグループの所有権を設定します。
厳密な以前のSysVスタイルでは、コマンドとsg
はnewgrp
グループプロジェクトを実行しているユーザーにとって重要なツールです。ただし、SunOS 4.xとSystem Vリリース4では、システム管理者はディレクトリ内のsetgidビットを使用してそのディレクトリでBSDを使用するか、既存のSysVグループ所有権割り当てスタイルを使用するかを選択できました。
この「ディレクトリへの gid の設定」動作は、Linux を含む Unix ファミリの複数のオペレーティングシステムで採用されています。しかし、一部のオペレーティングシステムではこれを採用していないようです(おそらくBSD側ではSysVブランチの「オプションの動作」はすでに標準的な動作であるためですか?)。ファイルシステムの種類の選択もこの機能の使用可能性に影響を与える可能性があります。