./bin
これを私のPATH
環境に追加するのがなぜ本当に悪い考えなのかわかりません。
私は通常、bin
作業中のプロジェクトにフォルダを作成しますが、フォルダがあるディレクトリにあり、そのフォルダに実行可能ファイルが含まれている限り、これを行うのは嫌いです。その後、bashはbin/command
まともなフォルダを選択します。command
bin
bin
command
説得力が必要です:D
答え1
、$HOME/bin
一般的.
に./bin
セキュリティリスクと見なされます。
この$HOME/bin
問題の場合、一部の「クラッカー」はいくつかのスクリプト(例えば、nanoというスクリプト)をそのディレクトリにプッシュし、そのようなスクリプトを実行してすぐにsudo nano /etc/hosts
rootアクセス権を取得するのを待ちます(nanoをvi、emacsなどに変更します) 、コマンドは実行されません)。実行できるペイロードのみが重要です)。
.
との場合、./bin
まだ同じ問題が発生します。無効なディレクトリで実行される追加プログラムを追加します。
これらの ./bin/commands が /usr/local/bin (新しいローカル スクリプトに好ましいソリューション) とは異なるディレクトリにある場合、これは別の操作を実行するためです。間違って実行するとどうなりますか?
コマンドに同じ方法で名前を付けると(最初に呼び出してから、更新、コミット、クリーンアップなど)、ディレクトリで作業でき、1つの呼び出しを受け取り、すぐに確認するために別の呼び出しに切り替えます。電話を切ると、脳はやっていたことを再開しようとします。ほとんどの場合、クイック "cd"を実行したことを忘れて(特に画面上のすべてのエントリが正しいディレクトリを指しているように見える場合)、間違ったパスで終わります。コマンドのディレクトリ(たとえば、1ヶ月間すべての操作を消去するクリーンアップスクリプト)。
これは無邪気な間違いのように見えるかもしれませんが、毎日多くの人に起こるものです! :)
良い回避策(またはより良い解決策)は、エイリアスを使用することです。
alias proj1-cleanup=/srv/proj1/bin/cleanup
正しいスクリプトを追加して、cd
正しいディレクトリで実行されていることを確認してください。
これにより、$HOME/.alias
必要なさまざまなスクリプトを追加することで、さまざまなコマンドを使用してさまざまな操作を実行できます。誰かがブラウザをハックしてファイルを生成した場合、または$HOME/bin/ls
一部のローカルユーザーがディレクトリにbin / lsファイルを生成しても、これらのファイルは決して実行されません。パスはまだ正しいコマンドを指します。
しかし、これは個人的な選択です。ローカルのリスクが何であるか、コマンドが何をしているのかを知っています。
答え2
少なくともUbuntuでは、これはデフォルトのユーザープロファイルの一部です。
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
これは問題になるとは思いませんが、ユーザーが書くことができ、コマンドを透過的に傍受できるため、人々は不安かもしれません。しかし、これは確かに./bin
。