順方向および逆方向シンボリックリンク:管理慣行?

順方向および逆方向シンボリックリンク:管理慣行?

他の人は、順方向シンボリックリンクについてどのように考えているのか疑問に思います。安全ですか?良い練習?頼る? [編集] - 問題空間に近すぎるため、用語が理解できない可能性があるため、順方向シンボリックリンクを定義していません。

ルートと/ usrをマージしようとする試みはほとんど失敗したため(bin、lib、lib64の2つの別々のディレクトリを削除したディストリビューション(cygwinを除く、ディストリビューションと見なす場合)はわかりません)、ディストリビューションでは主にOpenSUSEを使用します。マージを実装する方法は、/ usrにバイナリをインストールすることです。多くのプログラムには多くのプログラムへのパスがハードコーディングされているため、/bin/がおそらく最も一般的であるため、インストールパッケージは/bin/prog -> /usr/bin/progにシンボリックリンクを配置します。これは順方向リンクではありません(この用語は親ディレクトリからサブツリーへのスーパーバイザとして定義できますが、これは明らかに多くの環境では問題ではありません)。

セキュリティと信頼性に関連する環境では、 1) バックアップとリカバリ時間とバックアップスペースを最適化するために、異なるツリーを異なるデバイスに配置します。 2)消去または破損したパーティション関連の問題が含まれています。 3)攻撃でハードリンクファイルやその他のメカニズムを使用できる特定のセキュリティ攻撃を無効にします。理由1に関しては、特定のディレクトリとサブディレクトリにはしばしば小さな変更(/ var)がたくさんあります。一部は頻繁に変更されません(/etc、/bin、/sbin)。一部は毎日変更される可能性があります(/home)。同様に使用されるディレクトリを1つのパーティションにグループ化すると、頻繁に変更されないパーティションのバックアップが減り、頻繁に変更されるディレクトリをRAMディスクまたはSSDに配置することが適切です。

ただし、パーティションが異なる理由は、順方向接続方式が安全であるか「ベストプラクティス」であるか(またはそうでないか)とは何の関係もありません。より明確に説明するには、/usr/{{s,}bin,lib64}の下のディレクトリを指す/bin、/sbin、および/lib64にシンボリックリンクを配置します。 "/usr"が別々のパーティションの場合は、/{{にリンクを指定します。 s,}bin,lib64/ は「安全ではなく」実際に悪い管理慣行です。 /usr を保持するディスクがいくら安定していても何らかの理由でマウントできない場合 - ライブラリはバイナリルートディレクトリ /{ にリンクされています。 bin,sbin,lib64}は価値のないシステムが起動しなくなります。

私は個人的に3つの状況を経験しました。 「マウント」バイナリは/usr/bin/mountにあり、シンボリックリンクは/bin/mountにあり、最新のインストーラは複数のライブラリに再構成され、/lib64ライブラリのシンボリックリンクは/usrを指します。まだインストールされていない/ lib64および最近の失敗モード:プログラムが誤った番号のlibバージョンをロードするのを防ぐために、ライブラリのバージョン番号をバイナリとライブラリに入れます。

通常、この組み合わせは機能します。主な問題は、インストールされるまで同伴ディレクトリに含まれるバージョン番号がわからないことです。通常の操作中に、ルートディレクトリのファイルは/usr/lib64のファイルと動的にリンクできます。 / usrがマウントされていない場合は、/ lib64の同じ名前のライブラリとの接続を試みて失敗する可能性があります。最後のケースは、同じ名前のライブラリを/usr/lib64から/lib64にコピーして、ルートパーティションの/usrへのシンボリックリンクを元に戻そうとした副作用です。残念ながら、同じパッケージの新しいバージョンに更新すると、新しいバージョンはルートディレクトリにコピーされません。 /usr/lib64 コピーの時刻/日付スタンプが /lib64 の時刻/日付スタンプより古い場合、これをキャプチャする簡単な方法はありません。

リンカーユーティリティ「ldd」は、ファイル名ベースのバージョンを持つ必須ライブラリを表示しますが、含まれているバージョンについてはすぐにはわかりません。これらの追加作業は、まだマウントされていないファイルシステムに他のファイルシステムをマウントして起動するために必要なリソースを配置することによって発生します。

私は誰もこれが悪い慣行であると指摘していない理由の1つが、誰もそう簡単に失敗することができるものを実装すると信じていないか、新しく作成された理由が「バグ」ではないと信じていたからだと強く考えます。 - ハードディスクから直接高速ブートがサポートされなくなったように(元のSuSEインストーラの以前のバージョンで設定された)、パーティション分割はサポートされなくなりました(システム開発者はより速いブート時間をお勧めしますが)。

残念ながら、新しいデスクトップ開発者は/usr/binファイルを/binに安全にマージすることなく、以前の管理方法を無視しています。いくつかの理由は、ルートに十分なスペースがない可能性があるためです!

cygwinのようにマージしない理由が見つかりません。 (単に/bin @ / usr / binをマウントします。シンボリックリンクは含まれていません)。これは、他の問題を抱えている行動/出来事を「受け入れる」ことをやや仮定的なアドバイスによく似ています。

最後の仕上げの文:「私は保守的すぎるのですか?それとも、正方向リンクが重要な文書の「ベストプラクティス」領域にあると見なされますか?」

新しい失敗方法が登場するにつれて、私はこの問題について過度に保守的な可能性を考慮しなくなりました。私はこれが管理的な「ベストプラクティス」と見なすことができる方法がないと思います。

ベストアンサー1

与えられたバイナリがどこにあるべきか(/または/ usr)を見つけることは、不必要に複雑で目的がないという主張があります。システムはしばらく/usrなしで起動できなかったため、両方のディレクトリを維持する理由はありません。

バラよりhttp://www.freedesktop.org/wiki/Software/systemd/TheCaseForTheUsrMerge詳細については。

おすすめ記事