完全に共有された Unix ディレクトリを作成するにはどうすればよいですか?

完全に共有された Unix ディレクトリを作成するにはどうすればよいですか?

システム上の 2 人のユーザー間でディレクトリを共有したいと考えています。これまでに実行したことは次のとおりです。

私には「user1」と「user2」というユーザーがいます。「ours」というグループを作成し、両方のユーザーをグループに追加しました。また、/ours ディレクトリを作成し、それを「ours」グループに設定しました。

drwxrwsr-x user1 ours 4096 dec 13 2020 /ours

これで、ほとんどはうまくいきましたが、このフォルダにファイルを作成すると、ファイルが「ours」グループに所有されないことがあります。たとえば、そのフォルダに PDF をダウンロードしたところ、PDF ファイルがグループ「ours」ではなく、ユーザー「user1」とグループ「user1」に設定されていることがわかりました (正直に言うと、そのファイルが Firefox によって作成されたのか、それとも Evince によって作成されたのかは覚えていません)。これは面倒です。なぜなら、他の人に実際にファイルにアクセスさせたいときはいつでも、そのディレクトリで「chown -R」を実行して、すべてを ours グループに所有させる必要があるからです。

私たちが使用するさまざまなプログラムによって作成されたファイルが常に「ours」グループによって所有されるようにするにはどうすればよいでしょうか? グループの権限 (setgid) によってそれが強制されると考えていましたが、しばらく dir を使用した後、そうではないことがわかりました。ユーザー空間プログラムは、そこで作成したファイルを chgrp しているのでしょうか?

それが不可能な場合、完全にシームレスな「共有ディレクトリ」エクスペリエンスを実現するには、具体的に何をすればよいのでしょうか?

ありがとう。

答え1

ディレクトリを setgid として設定すると、そこに作成されたファイルはグループによって所有されるようになりますが、一部のプログラムがファイルを chgrp している可能性もあります。

chgrp -Rその場合、ディレクトリに対して定期的に(たとえば 10 分ごとに)実行する cron ジョブを設定する以外の方法はないと思います。

関連情報