ルートが所有するプロセスはファイルを書き込むことができません

ルートが所有するプロセスはファイルを書き込むことができません

特定のパスで複数のファイルを読み書きする必要があるプログラム (syslog-ng) を実行しています。起動時に、そのパスでファイルを開くことができないというエラーが発生していました。

次のディレクトリ構造を想定してください:

/var/platform/program

ディレクトリplatformの権限は 0655 に設定されています (所有者ユーザーの実行権限ではありません)。この権限を 0755 に変更すると、syslog-ng は正常に動作します。

一方、同じディレクトリ内のファイルを開いて書き込む小さなプログラムを C で作成しましたが、root として実行すると問題なく動作しますが、syslog-ng は失敗します...

この場合、何が問題になるのでしょうか?

答え1

syslog はおそらくchdirディレクトリにアクセスする必要があるため、ディレクトリに実行ビットを設定する必要があります。

見る実行ビットと読み取りビット。Linux のディレクトリ権限はどのように機能しますか?詳細については。

関連情報