Linuxでシンボリックリンクの所有者を変更するのはなぜですか?

Linuxでシンボリックリンクの所有者を変更するのはなぜですか?

Linuxでは、シンボリックリンクの所有者またはグループ所有者を変更できます。シンボリックリンクを介してファイルにアクセスするときにシンボリックリンクの権限が使用されていないため、誰かがこれを望む理由は何ですか?

役に立つかもしれない1つのユースケースだけが想像できます。これは、ユーザーが固定ビットを使用してディレクトリからシンボリックリンクを削除できるようにすることです。

シンボリックリンクの所有者またはグループ所有者を変更すると便利な他の状況がわかりますか?

答え1

リンク所有者がターゲット所有者と一致する場合にのみ、Apacheがシンボリックリンクに従うように設定できます。これは、ユーザーが/etc/passwdなどのネットワークを介して自分に属していないファイルにアクセスするためのリンクを作成するのを防ぐのに役立ちます。

...だからルートだとすると、求めるapacheはxymonなどが所有する特定のログファイルを表示するためにリンクをたどりますが、所有者に関係なくシンボリックリンクに従うことを可能にするので、Apacheのセキュリティを弱めたくありません。その後、xymonをシンボリックリンクの所有者にしたいかもしれません。

答え2

ルートがEveが書き込むことができるディレクトリで作業しているとします。このディレクトリには、fooEveに属するように変更する必要があるファイルがあります。だからルートタイプchown eve foo。ただし、ルートがEnterキーを押す直前にEveが実行されますln -sf /etc/passwd foo。今/etc/passwdそれはEveのものです!chown -h eve fooシンボリックリンクに従わないようにルートを実行できる場合、最大のダメージは、同じディレクトリにある他のファイルがEveに属するように変更されたことです。

lchownディレクトリツリーの所有者を変更するときにも便利です。シンボリックリンクを呼び出すため、誤ってツリー外のファイルに影響を与えるかどうか心配する必要はありませんchown

答え3

最初の答えは問題を解決できないようで、2番目の答えはApacheでのみ機能します。

Linuxについて私が考えることができることの1つは、ユーザーがシンボリックリンクの所有者である場合、一般ユーザーがシンボリックリンクへのハードリンクを作成できることです。なぜ誰かがそのようなリンクを作成したいのか分からない。

もう1つのことは、一般ユーザーがファイルを所有している場合(ファイルが追加されるグループのメンバーである場合)にのみファイルのグループ所有権を変更できることです。これにより、次のような質問が発生します。このファイルのグループ所有権は何ですか?シンボリックリンクは大丈夫です。組織では、リンクが必要なチームを表すラベルとして使用できます。

また、少なくともUbuntuでは、誰でもシンボリックリンクのタイムスタンプを更新できます。ただし、一部のシステムでは、所有者だけがこれを行うことを許可できます。シンボリックリンクにどのタイムスタンプが良いかはわかりませんが、使い方に関する有用な情報を提供できます。

編集:所有権が重要なもう一つの理由に気づきました。リンクは、ファイルの所有者のみを削除したり名前を変更したりできる固定ディレクトリ内に存在できます。

答え4

ログファイルに追加するプログラムがあります。これらのログファイルは毎月生成され、各ファイルの名前は異なります。ソフトウェアが正確なファイル名を把握するのではなく、その月の現在のファイルへのシンボリックリンクである「一般」ファイル名(例:data.log)を使用します。これはcron操作によって自動的に行われます。

新しい月別ファイルを作成するときは、新しいファイルへのシンボリックリンクをポイントする必要があります。所有権/グループの競合がある場合、ソフトウェアはシンボリックリンクを変更できません。したがって、シンボリックリンクを変更するには、所有権/グループ書き込み権限が必要です。

関連情報