ハードリンク alice
を作成するには write+execute
が必要です target-dir
の権限 すべてのケースで。 target.txt
に必要な権限 異なります:
- If
fs.protected_hardlinks = 1
次にalice
target.txt
のどちらかの所有権が必要です または少なくともread+write
- If
fs.protected_hardlinks = 0
次に、任意のアクセス許可のセットで十分です。 000でもいいです。
同様の質問に対するこの回答には、この質問に回答するための情報が欠けていました。
http://kernel.opensuse.org/cgit/kernel/commit/?id=800179c9b8a1 から [私のものを強調]:
<ブロック引用>ハードリンク:
システムファイルと同じパーティションにユーザーが書き込み可能なディレクトリを持つシステムでは、長年にわたるセキュリティ問題のクラスは、/tmp のようなワールド書き込み可能なディレクトリで最も一般的に見られる、ハードリンクベースのチェック時間と使用時間の競合です。 .この欠陥を悪用する一般的な方法は、特定のハードリンクをたどるときに特権の境界を越えることです (つまり、ルート プロセスが別のユーザーによって作成されたハードリンクをたどります)。さらに、ユーザーが潜在的に脆弱な setuid/setgid ファイルを「固定」できるため、管理者が実際にシステムを完全にアップグレードしないという問題が存在します。
解決策は、ユーザーが既に既存のファイルの所有者であるか、既存のファイルへの読み取り/書き込みアクセス権を既に持っている場合にのみ、ハードリンクの作成を許可することです .