アメリエフの技術ブログ

Amelieff Staff Blog

「環境変数PATH」と「アクセス権限」

以前、Linux入門者がとまどいがちなものの一つが「ディレクトリ間の移動」であると書きましたが、今回は残りの二つ「環境変数 PATH」と「アクセス権限」について書きます。

先週の土曜日は、弊社のバイオインフォマティクス・スクール「Linux基礎」第二回でした。
その中で「環境変数 PATH」の説明もあったのですが、やはり最初は「?」という顔をされている方が多かったようです。


「環境変数 PATH」は「みんなが使う道具を置く場所」である

突然ですが、みなさんの家では「つめきり」や「TVのリモコン」をどこに置いていますか?「ドライヤー」や「ヘアブラシ」は?
家族で共有して使うものは、「リビングのカゴ」や「洗面所の棚」など、
みんなが知っている場所に置くことが多いのではないでしょうか。
「環境変数 PATH」はこの「リビングのカゴ」や「洗面所の棚」にあたります。

「環境変数 PATH」には最初から/usr/local/binや/binや/usr/binなどが設定されており、
基本的なコマンドは大体このどこかに置いてあるので、Linuxをインストールした直後からcdやlsが実行できるのです。
お使いのLinuxの「環境変数 PATH」に何が設定されているかは以下のコマンドで確認できます。
$ echo $PATH

また、道具本体を必ずしも「環境変数 PATH」に置いておく必要はなく、
「リビングのカゴ」に「包丁は台所にあります」というメモを貼っておけば、誰でも包丁を見つけることができます。
Linuxでもこのようなことができて、これを「シンボリックリンク」と呼びます。
シンボリックリンクは次のように張ります。
$ ln -s 実体のパス シンボリックリンク先のパス


「環境変数 PATH」はユーザごとに変更できる

「うちは大体なんでもトイレに置いています」というお宅もあるかもしれません。
「環境変数 PATH」には、新しい場所を追加することもできます。
「環境変数 PATH」は、ユーザのホームディレクトリにある.bashrcや.bash_profileといった設定ファイルで変更します。

トイレがメインのお宅なら、家族それぞれの「環境変数 PATH」に「トイレ」を、お父さんが書斎にゴルフ用具を置いているなら、お父さんの「環境変数 PATH」に「書斎」を追加しましょう。


実行権限は読み・書き・実行

思春期の娘さんがいると「パパ!私のお気に入りのブラシを使わないで」などと言い出すこともあるでしょう。
花子のブラシを使っていいのは花子と妹だけ、というように制限することができます。
$ chmod 754 花子のブラシ
とした場合、7・5・4は左から1文字ずつ「花子(所有者)」「花子の属すグループ」「その他の人」の実行権限を指します。
花子はブラシを見ることも改造することも使うこともでき(=7)、
妹(花子と同じグループ)はブラシを見ることと使うことができ(=5)
他の家族は「ブラシがあるなあ」と見ることだけができます(=4)。
※4が読み、2が書き、1が実行権限なので、読み+書き+実行だと4+2+1=7、読み+実行だと4+1=5、読みだけだと4、などとなります。

また、花子の机の引き出しには秘密の日記帳が入っているので、
引き出しおよびその中にある日記帳は花子しかいじってはいけないように設定することもできます。
$ chmod -R 700 花子の引き出し
他の人は引き出しの中に何があるのかすら見ることすらできません(=0)。-Rは「引き出しの中にあるものすべて」の意味です。

ただし、実はお父さんがこっそり花子の日記帳を読んでしまうことができる場合があります。
他のユーザの権限でコマンドを実行できる、sudoコマンドというものがあります。
$ sudo hanako less 花子の引き出し/日記帳

sudoコマンドについてはまたいずれ。