いくつかのタスクを実行するプログラムがあります。ユーザーAとして実行しています。
そのうちの1つは、ユーザーBのホームディレクトリにあるディレクトリにファイルを転送することです。転送は、シェルコマンドへのシステムコールを介さずに作成された言語のAPI呼び出しを介して行われます。
これで、この転送を実行するさまざまな方法が表示されます。
- プログラムをrootとして実行します。
- AとBを同じグループに入れ、ディレクトリの所有権を調整します。
- sudoプログラム
- システムコールとsudoを介して移動
- Aにローカルにファイルを入れて外部に転送(問題はアウトソーシング)
- ACL Bディレクトリ
- ...
ルートを介してプログラムを実行するのは悪いので、この要件は一般的だと思います。最も一般的な治療法は何ですか?
編集する
Aのプログラムがファイルを生成します。 Bはそれを読んで削除できるはずです。
答え1
ユーザーAの他のファイルを見たくないことが重要な場合は、両方のユーザーが読み取りおよび書き込み権限を持つ別々のパブリックディレクトリを作成し、そこにファイルを保存します。
あるいは、inotifywatchを使用してファイルを作成したら、すぐにファイルをコピー/移動してBにchownすることもできます。ここに例があります。 cronに入れてください。