加藤(大阪)です。
横から失礼します。
少し興味があったので、調べてみました。
Wed, 27 Jan 2010 18:48:46 +0900 付
Yamada Kazuoさんのメールより:
> bash
> login
> su
> dash
>
> のバイナリファイル中から文字列が見つかる様なので、ハードコーディングされてい
> るのかもしれません。
どうやらそのようですね。
bash(3.2-3vl5) の srpm を見ると、variables.c が config.h(.in) 経由で読み
込んでいる config-top.h 内で、
/* The default value of the PATH variable. */
#ifndef DEFAULT_PATH_VALUE
#define DEFAULT_PATH_VALUE \
"/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:."
#endif
となっていますが、これが初期値みたいです (man bash の、シェル変数 -
PATH と一致しています)。
又、上の PATH 定義は、bash-2.03-paths.patch で、
- "/usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:."
+ "/usr/local/bin:/bin:/usr/bin"
と修正されているので、実際には、
"/usr/local/bin:/bin:/usr/bin"
が、PATH の初期値みたいです。
bash 起動時、各設定ファイル類をどう読み込んでいるかは、
$ bash --verbose --login
で、確認できるようです。
スクロールアウトしてしまう場合は、
$ bash --verbose --login 2>&1 | tee ~/logfile
等でログを取り、ctrl+d でログアウト後、~/logfile を見れば、上記の PATH
初期値に、何処でどういう具合に値を追加しているかを確認出来ると思います。
--
加藤 雅 <[email protected]>
http://add10.hp.infoseek.co.jp/rox/
http://www2.odn.ne.jp/add10/fluxbox/