追加してください。安全ですか?私の道は?どうですか?

追加してください。安全ですか?私の道は?どうですか?

人々が言及するのを見ました。その他 回答.環境変数に現在の作業ディレクトリ( "")を含めるのは悪い考えですが、$PATHこの問題を具体的に解決する質問が見つかりませんでした。

.それでは、なぜ私のパスに追加しないのですか?すべての警告にもかかわらず、これを行う場合は何を知る必要がありますか?最初に追加するよりも最後に追加する方が安全ですか?

答え1

あなたがそのマシンの唯一のユーザーなら、あなたが何をしているのかを知っていれば大丈夫です。一般的な懸念は、現在のディレクトリを置くとPATHコマンドを定数リストとして扱うことができないことです。現在のディレクトリでスクリプト/プログラムを実行する必要がある場合は、名前を./前に追加して常に明示的に実行できます(システムに「現在のディレクトリでこのファイルを実行したい」と通知します)。

今、これらすべての小さなスクリプトがファイルシステムに分散しているとしましょう。いつか間違ったタスクが実行されます。したがって、事前定義されたリストに静的パスを持つことはPATH順序に関するものであり、潜在的な問題を回避することです。

.ただし、に追加する場合は、リストのPATH末尾(export PATH=$PATH:.)に追加することをお勧めします。少なくとも、このようにシステム全体のバイナリを上書きすることはありません。

あなたがシステムのルートであり、システムが他のユーザーのアカウントにさらされると、.大きなPATHセキュリティリスクがあります。cdコンテンツやスクリプトを誤って入力したため、一部のユーザーのディレクトリに入り、誤って悪意のあるスクリプトを実行する可能性があります。システム全体のバイナリと同じ名前です。

答え2

危険は、誰かが現在のディレクトリに悪意のある実行可能ファイルをドロップすることです。

最悪のシナリオは、次の場合に発生します。

  • 悪意のあるコマンドには無制限の破壊力があるため、rootとしてログインしました。
  • .PATHの先頭に標準コマンドがユーザーの知らないうちに無視される可能性があるためです(しばしばlsリストに隠されています)。

.一般ユーザーとしてログインしてPATHの末尾にいる場合、リスクははるかに低いですが、まだ存在します。

  • 誰かが頻繁にコマンドを誤って入力し、一致するコマンドをインストールすることに気付くかもしれません。
  • 誰かがインストールされていないコマンドと同じ名前の偽のコマンドをインストールすることもできます。

ただし、お客様がシステムの唯一のユーザーであっても、リスクは依然として存在することに注意してください。たとえば、悪意のあるサイトや感染したサイトからダウンロードしたアーカイブを抽出すると、マルウェアがインストールされます。

答え3

入力内容に常に非常に注意を払っていても、最後に.ユーティリティを入れることはまだ安全ではないため、デフォルトでの内容が使用されます。これが起こると、これは攻撃のベクトルです。PATH/tmp/tmp

.また、inを避けることには欠点はあまりありませんPATH./これは、入力が簡単で(特に文字が連続キーにあり、Shiftキーを必要としないQWERTYなどのキーボードで)使用すると、完了に役立ち、潜在./的に節約できるためです。入力キーの数が終了しました。

現在のディレクトリからコマンドを入力できるようにしたい場合は、zshなどの最新のシェルでcommand_not_found_handlerこれを安全に実行する機能を提供できます。つまり、コマンドを実行する前にハンドラに必要なすべてのセキュリティチェックを追加できます。実行。

答え4

いいえ、これは危険です。a現在のディレクトリからプログラムを実行するには./a

これにより、他の人があなたがアクセスしているディレクトリに植え付けられたトロイの木馬を実行する危険があります。

というバイナリファイルを含むtarファイルをダウンロードしたときに何が起こるのかを想像してくださいls

関連情報