自分のホームディレクトリのフォルダを他のユーザーと共有できますか?
私のシステムには2人のユーザーがいて、agent
.externaldaemon
サーバーはagent
ファイルに接続してファイルを次のように同期します~agent/incoming
daemon
ファイルにアクセスしたいのですが、どのファイルにもアクセス~agent/incoming
したくありません。agent
daemon
というグループを作成し、automaton
ここに2人のユーザーを追加しました。次に、~agent/incoming
フォルダを次のようにchmodしdrwxrws---
(固定ビットを参照)フォルダをagent:automaton
。
プロセスが実行され、新しいファイルをフォルダに転送して権限を設定しますが、ファイルをincoming
表示またはコピーすることはできません。agent:automaton
-rw-rw----
daemon
stat: cannot stat (path here) : Permission denied
私は何が間違っていましたか?
答え1
あなたの質問にデーモンに渡すパスを話さなかったか指定しなかったので、正確に答えることは困難です~agent
。ディレクトリからデーモンを起動し~agent/incoming
て相対パスを渡すと、デーモンがグループautomaton
内にあるためです。~agent/incoming
ディレクトリ内のファイルを読み、書き込み、削除できます。
私が望むものは次のとおりです。
- この
~agent
ディレクトリはデーモンによって実行可能ではありません。 - デーモンに渡されたパスは
~agent
コンポーネントとして含まれます(つまり絶対パスです)。
プロセスがアクセスしたときに通過するすべてのディレクトリ(、、および/home/agent/incoming/foo
)に対する実行権限が必要です(一部がシンボリックリンクの場合はさらに権限が必要です)。/
/home
/home/agent
/home/agent/incoming
デーモンがfoo
現在のディレクトリにアクセスしている場合は、~agent/incoming
現在のディレクトリ()自体に対する実行権限のみが必要です。~agent/incoming
そのディレクトリを現在のディレクトリにする必要があります。chdir
これには、ターゲットディレクトリにアクセスできるプロセスが必要です。 (たとえば)ユーザーとして実行している場合は、まず目的のディレクトリに変更してagent
からsu daemon -c daemon-command
。
答え2
「~agent/incoming」に対する権限があっても、「~agent/」フォルダのデーモンには権限がないため、権限階層です。以下を参照してください。階層ディレクトリ権限に関する質問