こんにちはユキトモです。
今回は「パス」について簡単に解説していきます。
この記事でわかること
- パスの概要が分かります。
パス
一言でいうと
「コマンドを探しに行くパスの設定」
のことです。
「パス」は「コマンドサーチパス」のことを言います。
コマンドを実行する時に、本来「/usr/bin/****」のように、コマンドがあるディレクトリまですべてを入力する必要があります。
「フルパス指定」とか言ったりします。
ですがよく使うコマンドを「フルパス指定」するのは打ち間違いもあるかもしれないですし大変ですよね。
なのでLinuxのシェルは、ユーザがコマンドをフルパス指定しなくてもよい機能があります。
よく使うコマンドを、ある特定のディレクトリに対して探しにいきます。
このとき、シェルが探しに行くディレクトリを設定することを、「パスを通す」と言います。
コマンドを探しにいくパスの設定をするのでより正確には「コマンドサーチパス」と言います。
パスを通すためには、環境変数の「PATH」に対して、通したいパスを「:」記号で区切って記載します。
この設定は「export」コマンドを利用します。
現在の設定に「/opt/example」を追加する場合は
パスを追加する
 
$ export PATH=$PATH:/opt/example
とします。
一般的に「カレントディレクトリ」にはパスが通っていません。
例を挙げるとカレントディレクトリの「hanate.csh」というコマンドを実行する時には、
カレントディレクトリ
 
./hanate.csh
というように指定する必要があります。
ちょっと面倒ですよね。
ですがカレントディレクトリにパスを通せばよいというわけでもありません。
セキュリティ上問題になるのでやってはいけません。
「必要な箇所だけにディレクトリにパスを通す」という原則があります。
パスをたくさん通しすぎると、2箇所に「hogehoge」というファイルがあった時に、どちらのファイルが実行されるのかわからないですよね。
実際には、PATH変数のより先頭に指定されたパスが優先されます。
ユーザはいちいち環境変数を確認する必要があったりして大変ですよね。
ではカレントディレクトリにパスを通すとユーザはほとんどのディレクトリをカレントディレクトリにすることになってしまいます。
要するにどのディレクトリもコマンドサーチパスになってしまいます。
このようになると悪意のあるプログラムがあった時に、意図せずに実行される危険が高くなります。
一般ユーザがアクセスすることができるディレクトリは制限されてます。
アクセスされたくないディレクトリにはパスを通さないようにしてシステムを安全に使えるようにしています。
ですが一般ユーザでもアクセスできるディレクトリにパスを通してしまうと、悪意のあるコマンドを置かれた時に危険性が大きくなります。
コマンドサーチパスは、便利なのでたくさん指定したいところです、
ですが、セキュリティ面を考えると安全なディレクトリだけに指定することが重要です。
以上、パスの概要の解説でした。