Linuxでは、シンボリックリンク(symlink)の所有者またはグループ所有者を変更できます。シンボリックリンクを介してファイルにアクセスするときにシンボリックリンクのアクセス許可が使用されないので、なぜ誰かがそれをしたいのかと思いました。
便利なのは1つの使用例だけだと想像できます。つまり、ユーザーがスティッキービットを使用してディレクトリ内のシンボリックリンクを削除できるようにします。
シンボリックリンクの所有者またはグループ所有者を変更することが役立つ他のケースを知っていますか?
Linuxでは、シンボリックリンク(symlink)の所有者またはグループ所有者を変更できます。シンボリックリンクを介してファイルにアクセスするときにシンボリックリンクのアクセス許可が使用されないので、なぜ誰かがそれをしたいのかと思いました。
便利なのは1つの使用例だけだと想像できます。つまり、ユーザーがスティッキービットを使用してディレクトリ内のシンボリックリンクを削除できるようにします。
シンボリックリンクの所有者またはグループ所有者を変更することが役立つ他のケースを知っていますか?
回答:
Eveが書き込み可能なディレクトリでrootが作業しているとします。foo
このディレクトリには、イブに属するように変更する必要があるファイルがあります。だからルートタイプchown eve foo
。しかし、ルートがEnterキーを押す直前に、Eveが実行されln -sf /etc/passwd foo
ます。今/etc/passwd
イブに属しています!rootが実行さchown -h eve foo
れてシンボリックリンクをたどらないことを確認できる場合、実行できる最も大きな害は、同じディレクトリ内の他のファイルがEveに属するように変更されたことです。
lchown
ディレクトリツリーの所有者を変更する場合にも便利です。chown
シンボリックリンクを呼び出したので、ツリー外のファイルに誤って影響を与えることを心配する必要はありません。
mv myfile foo
、ルートはの所有者を変更することになりmyfile
ます。ただしmyfile
、イブが作成したり、そのディレクトリに移動したりできるファイルである必要があります。システム上のファイルであってはなりません。
chown -h
シンボリックリンクではないはずのファイルの所有権を変更する際に、なぜそれを警告措置として使用するのか(エッジケース、IMO)を説明する理由のほうが多いようです。実際にはシンボリックリンクであることが意図されているファイルの所有権を変更する理由については説明されていません。
chown
「ツリー外のファイル」の所有者を変更するのは、変更するのはディレクトリの所有者だけなのですか?
chown -R
場合、(l)chown
各ディレクトリエントリでシステムコールが呼び出されます。ディレクトリエントリがシンボリックリンクの場合chown
、ツリーの外部にあるリンクのターゲットに影響を与えるため、システムコールを呼び出さないでください。
Apacheは、リンクの所有者が宛先の所有者と一致する場合にのみ、シンボリックリンクをたどるように構成できます。これは、ユーザーが所有していないファイル(/ etc / passwdなど)へのWebアクセス用のリンクを作成できないようにするのに役立ちます。
...ので、あなたは、rootとして、言わせたかったのapacheがxymonか何かが所有していた特定のログファイルを表示するためのリンクに従うことができますが、それは関係なく、所有者のシンボリックリンクをたどるようにすることによってApacheのセキュリティを緩和する必要はありませんでした。次に、xymonをシンボリックリンクの所有者にすることができます。
/etc/passwd
場合、悪意のあるユーザーは他のローカルアクセスなしでそのファイルへの読み取りアクセスを持っている可能性がありますが、Apacheが所有するシンボリックリンクによって妨害されます。
最初の答えは問題に対応していないようで、2番目の答えはApacheにのみ適用されます。
一般的にLinuxで考えられることの1つは、ユーザーがシンボリックリンクの所有者である場合にのみ、通常のユーザーがシンボリックリンクへのハードリンクを作成できることです。なぜそのようなリンクを作りたいのか、私にはわかりません。
もう1つは、通常のユーザーがファイルのグループ所有権を変更できるのは、そのユーザーがファイルを所有している場合(およびファイルが追加されるグループのメンバーでもある場合)です。シンボリックリンクが行います。組織では、リンクを必要とするチームを示すタグとして役立つ場合があります。
また、少なくともUbuntuでは、誰でもシンボリックリンクのタイムスタンプを更新できます。ただし、一部のシステムでは所有者のみが許可されている場合があります。タイムスタンプがシンボリックリンクにどの程度役立つかはわかりませんが、使用されている量に関する有用な情報が得られる場合があります。
編集:私は所有権が重要になるもう1つの理由を理解しました。リンクは、ファイルの所有者のみがファイルを削除または名前を変更できるスティッキーディレクトリ内にある可能性があります。
ログファイルに追加するプログラムがあります。これらのログファイルは、毎月異なる名前で作成されます。ソフトウェアに正確なファイル名を計算させるのではなく、その月の現在のファイルを指すシンボリックリンクである「汎用」ファイル名(data.logなど)を使用します。これはcronジョブで自動化されています。
新しい月次ファイルが作成されたら、シンボリックリンクを新しいファイルにポイントする必要があります。所有権/グループの競合がある場合、ソフトウェアはシンボリックリンクを変更できません。したがって、シンボリックリンクを変更するには、所有権/グループの書き込み権限が必要です。
オープニング画面でファイルへのリンクが必要な場合は、シンボリックリンクを
「/ home / username / Desktop」
ディレクトリ。
また、シンボリックリンク自体がroot:root(0:0)の所有権を持っている必要があります。そうでない場合、リンクは機能しません。
(Ubuntu / Debianなど)