[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[vine-users:08976] Re: 環境変数の設定


こしみず と申します。はじめまして(^^)。
もしかしたらお役に立てるかもな〜、と思って出てきました。

From: Yoshikazu Muraoka <muraoka@hyo-med.ac.jp>
Date: Mon, 12 Jul 1999 14:22:45 +0900

> 村岡@兵医大ともうします。

こんばんは(^^)。一部、ちょっと長めだったので勝手に改行して引用した
部分があります。ご了承ください。

> Vine Linux 1.0 を使用していますが,環境変数の設定で少々気になることが
> あります。
> 実害はないのですが,理由を知っておられる方がおられたら教えてください。

LD_LIBRARY_PATH ですね。僕も似たような状況で混乱しまくっていました。
でもって、あちこち検索して見付けたのが

[linux-users:54409] Re: .bash_profile

でした。この ML でも活躍されている清宮さん@都立大が書かれたものです。
この投稿には助けられましたです。ありがとうございました。>清宮さん
以下はその受け売りですが、、、(^^;

[1]
$ jman ld.so
:
       o      環 境変数 LD_AOUT_LIBRARY_PATH を用いる。ただし実行
              ファイルが setuid/setgid バイナリの場合は、これは無
              視される。
:

あれー、、、上記ログに引用された man page では LD_LIBRARY_PATH に
直接言及があったんですけど。。。
まぁ、LD_AOUT_LIBRARY_PATH の特徴は LD_LIBRARY_PATH にも継承されて
いるんだろう、ということで(^^;;;。

[2]
[mkoshi@XR350 bin]$ pwd
/usr/X11R6/bin
[mkoshi@XR350 bin]$ ls -l kterm xterm rxvt
-rws--x--x   1 root     root       134604 Apr 29 01:59 kterm*
-rwsr-xr-x   1 root     bin         93568 Dec 12  1998 rxvt*
-rws--x--x   1 root     root       165780 Feb 10 06:38 xterm*

という風に、kterm などには setuid が立っています。
村岡さんが環境変数を確認されたのは、これらターミナル・エミュレータ
上だと想像しているのですが、いかがでしょうか。

以上 [1][2] の組み合わせにより、LD_LIBRARY_PATH が有効にならなかっ
たのだと思います。


> /etc/profile に
> LD_LIBRARY_PATH=/usr/FFC/lib
> export LD_LIBRARY_PATH
> という行を付け加えてログインし直し,
> echo $LD_LIBRARY_PATH
> を実行すると,root 権限でログインした場合には上記の環境変数は正しく設
> 定されてい

これは、kterm などの owner が root であり、プログラムの実行者も
root であるからだと思います。
setuid は関係無くなりますから(ていう考え方で良いんでしょうか…)。

> ますが,ユーザーアカウントでログインした場合は空白のままで何も設定され
> ていません。

これが、上述の原理による現象ですね。

> ただし,起動したxterm上で
> $ export LD_LIBRARY_PATH=/usr/FFC/lib
> と実行すれば,ちゃんと認識されます。

$ . .bash_profile とか $ . .bashrc で source した場合にもOK
ですね。
動作の仕組みをちゃんと分かっていないのですが、これは kterm 上
で動いている shell が setuid されていない、というのが理由みた
いですね。

試しに # chmod 4755 bash して setuid を立ててみたところ(所謂
「良い子は真似しちゃいけません」って暴挙ですね(^^;)、
一般ユーザでは export LD_LIBRARY_PATH も source も効かなくなり
ました。
root では勿論設定可能でした。

>  ~/.bash_profile に同様の設定をしても症状は同じですが,~/.bashrc に
> 記述すれば,
> 一応回避することはできます。

あ、、、本当ですね。気付きませんでした。
これは、初期化ファイル読み込みのタイミングの違いによるんでしょうね。
.bashrc は bash が新たに起動した時だから、LD_LIBRARY_PATH が有効に
なる、ということですよね。
.bash_profile はログイン時でしたっけ?こちらと kterm がどのように
関っているのかについては、よく分かりません…(T^T)。


てな感じで書いてみたのですが、、、自分自身がものを知らないことを再
認識させられました。図々しくしゃしゃり出てしまって、すいません。
どなたからもリプライが出ていないようだったので、、、と言い訳モード
です。
また、ML というものに投稿するのはこれが初体験です。不手際がありまし
たらご指摘お願い致します。

ではでは。

-----
free とは『選択の自由』

輿水 真人 (Koshimizu Masato)  mkoshi@pop01.odn.ne.jp

P.S. DELL Dimension XPS R350 と DynaBook SS3010 で Vine1.1 が元気
     に稼働中です(^-^)。
     Project Vine / ML の皆様と先達の方々に大感謝です!

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
Follow-Ups: References: