PATH変数値の規則

PATH変数値の規則

PATH変数値のベストプラクティスまたは少なくともルールを探しています。

特に知りたいです。

  1. 値に、およびディレクトリの優先/推奨順序がありますか/bin/usr/bin/usr/local/binPATH
  2. root以外のユーザーの場合および/または変数を含めると、/sbin欠点/usr/sbinがありますか?/usr/local/sbinPATH

(1)に関して、私の無知な意見は、これらの経路が順番に現れなければならないということです。

..:/usr/local/bin:...:/usr/bin:...:/bin:...

...PATH変数から。ここでのアイデア(ある場合)は、ローカル/usr/local/binインストールが.NETに存在する可能性のあるコマンドを「ローカル」に上書きできることです/usr/bin。同じ理由で(これは実際に拡張されました!)/usr/bin伝統的にに配置されていたコマンドの適用範囲です/bin

上記内容の99%が幻想であることに気づきました。それで私がこの質問をするのです。

*/sbin同様に、幻覚的な方法で、ディレクトリ内のコマンドはスーパーユーザー権限を持つ人のためのものであり、一般ユーザーがそのコマンドを使用できるようになると、彼らの小さな心が混乱するという概念が思い出されるようです。つまり、PATH一般ユーザーの変数には*/sbinパスを含めないでください。

それにもかかわらず、私は変数の初期設定(各ユーザーが自分のシェル初期化スクリプトを実行する前に取得する設定を*/sbin意味します)にパスを含むシステムを見たことがないので、なぜこれを知りたいのですか?場合 。PATHPATH

答え1

  1. はい、いいえ。注文には特別なルールはありません。簡単に:ツールがxyz内部に/binあり、/usr/bin同じツールへのリンクではなく実際に別のツールである場合、基本的にどのツールを実行する必要がありますか?

はい。 「地域優先」がその決定に大きな役割を果たしました。したがって、提案は/usr/local/bin:/usr/bin:/bin意味があります。しかし、実際に保証を受けることができる場合はほとんどありません。理論的には可能ですが、実際には...

スーパーユーザーがより良いバージョンを見つけても、「標準ツールは展開レベルで維持する必要がある」ため、lsシステム全体に通常のバージョンとしてインストールされるか、/binまったくインストールされません。商用バージョンのLinuxを使用している場合は、他のバージョンのシステムツールをインストールすることは法的に禁止されています。

直接インストールできますが、この場合は新しいバージョンがそのバージョンに移動するため、/home/user/binこれは実際に可能な範囲の唯一のソースです。

  1. /sbin/usr/sbin代わりに、管理者と一般ユーザーのために予約するように設計されたツールもあります。通常、ルートのプライベートパス(たとえば)に含まれます/root/.bashrc

したがって、あなたは正しいです。これは主に一般ユーザーを混同せずに誘惑しないためです。

関連情報