setgidを使用する共有ディレクトリが期待どおりに機能しません。

setgidを使用する共有ディレクトリが期待どおりに機能しません。

同じディレクトリを共有したい開発者グループがあります。私はこれらの開発者と一緒に新しいグループを作成し、それらのディレクトリを作成しました。そのディレクトリのグループを私が作成したグループに設定し、setgidビットを設定しました。

みんな大丈夫です。ファイルとディレクトリは作られたこの共有ディレクトリに対する正しい権限が必要です。ところが、開発者が使ったアプリが予期せぬ権限を発生させる作業をしていました。ファイルとディレクトリは、共有ディレクトリのグループではなくユーザーグループを使用して作成されます。ディレクトリに setgid ビットが設定されていません。

私のもの推測する何が起こっているかは、アプリケーションが別の場所(/ tmpなど)にディレクトリ階層を作成して完了した場合移動する共有ディレクトリへ。そうでなければそうです。これまでの私の解決策は、権限を手動で調整することです。正しい権限を持たないファイルとディレクトリを検索します。探すその後、このリストは次にパイプされます。パラメータ。これは継続的な問題なので、次のものを使用できます。素晴らしい開発者に権限を直接変更する方法を提供します。

より良い解決策はありますか?

ベストアンサー1

こんにちは、StackExchangeへようこそ。

これがどのように起こるかについての仮説は合理的に聞こえますが、これが問題の原因であることを実際に確認する必要があります。

これが実際に問題の原因であると判断した場合は、共有ディレクトリに一時ディレクトリを作成するようにアプリケーションを設定することをお勧めします。

これが不可能な場合、他のアプローチは/ tmpでディレクトリが作成された場所を見つけます(衝突を防ぐためにアプリケーションを実行している人のユーザー名またはユーザーIDで名前を付けることができます)、それを共有ディレクトリにシンボリックするリンクすることです。

あるいは、開発者が使用している実行可能ファイルのグループを共有ディレクトリの実行可能ファイルのグループに変更してから、実行可能ファイルにsetgidビットを設定することもできます。これにより、アプリケーションが共有グループIDで実行され、実行可能ファイルが特定のタスクを実行しない限り、アプリケーションが実行されているプロセスグループを含むディレクトリが作成されます。

最後に、最も魅力的な解決策は、共有ディレクトリの権限を更新するために定期的に実行されるようにcronjobを設定することです。

おすすめ記事