ラベル linux の投稿を表示しています。 すべての投稿を表示
ラベル linux の投稿を表示しています。 すべての投稿を表示

2012年5月12日土曜日

Linux(CentOS)にパスを通す方法

http://d.hatena.ne.jp/Akineko/20090825/1251187210

exportコマンドで環境変数をエクスポートする。PATHに関しては
PATH=$PATH:通したいパス
のように$PATHの後に通したいパスを記載するようにしないと
既存のパスが通らなくなってしまうので注意。

例: /usr/local/scala/bin にパスを通す場合
$ export PATH=$PATH:/usr/local/scala/bin

ログアウトしても同様の状態を維持したい(永続化する)場合は下記の方法を使う
・特定ユーザーのみに設定

ホームディレクトリにある.bash_profileの最終行に
export PATH=$PATH:通したいパス
を記載して保存。その後
source .bash_profile
を実行して設定を反映


・全ユーザーに設定
/etc/profileの最終行に

export PATH=$PATH:通したいパス
を記載して保存。その後
source /etc/profile
を実行して設定を反映



▼具体例
http://memopct.blogspot.jp/2012/05/susu.html
で記載した一般ユーザーでifconfigコマンドが使えない問題の解決をする

・まずは/etc/profileの末尾にexport PATH=$PATH:/sbinを書き加えて保存

[root@localhost ~]# vim /etc/profile
-------------------------------------------
 54     fi
 55 done
 56
 57 unset i
 58 unset pathmunge
 59 export PATH=$PATH:/sbin
-------------------------------------------

・まだ上記設定が反映されていないので一般ユーザーのPATHに/sbinはなし
[guest@localhost ~]$ env | grep PATH
PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/guest/bin

・source /etc/profileでファイル設定を再読み込みするとPATHに/sbinが加わっていることがわかる
[guest@localhost ~]$ source /etc/profile
[guest@localhost ~]$ env | grep PATH
PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/guest/bin:/sbin



suとsu - の違い

http://www.obenri.com/_command/su01.html

su の後に "-(ハイフン)" をつけた場合と付けない場合の違いは、 su コマンド実行前のユーザーアカウントの操作環境(使用する シェル の種類や 環境変数 、 ホームディレクトリ など)をそのまま "root" に引き継ぐか、それとも "root" に設定されている操作環境を用いるか、という違いがあります。

具体的には
su
だとホームディレクトリやPATHなどの環境変数が変更前のユーザーの設定のままだが
su -
だとrootのホームディレクトリになり、PATHなどの環境変数もrootのものが設定される。

▼具体例
・CentOSでifconfigコマンドが使えない

[root@localhost ~]# which ifconfig
/sbin/ifconfig

ifconfigとコマンドを打ってもコマンドが通らないのは一般ユーザーは/sbin/にデフォルトで
パスが通っていないため。

[guest@localhost ~]$ env | grep PATH
PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/guest/bin

下記のようにsuでは環境変数が一般ユーザーのものと同一なためifconfigのパスが通っていない


[guest@localhost ~]$ su
パスワード:
[root@localhost guest]# env | grep PATH
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/guest/bin
[root@localhost guest]# ifconfig
bash: ifconfig: command not found

su -ならrootの環境変数がセットされるため、ifconfigのパスが通っている
[guest@localhost ~]$ su -
パスワード:
[root@localhost ~]# env | grep PATH
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr **:**:**:**:**:**
          inet addr:192.168.1.*  Bcast:192.168.1.255  Mask:255.255.255.0