[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:14256] Re: X を起動する LD_LIBRARY_PATH が消えます



佐野@浜松です。

In article <19990405125221.6765.qmail@xxxxxxxxxxxxxxx>
 Kunihisa Kawamura <kunihisa@xxxxxxxxxxxxxxx> さん writes:

> ld.so の manpage を調べる発想は、しばらく私には難しい... (^^;;

問題の環境変数は LD_LIBRARY_PATH ですから、 LD に関係するものを
考えれば、適当に漁ってみても

 $ ls -R /usr/man|egrep '^ld'
ld.1.gz
ldexp.3.gz
ldiv.3.gz
ld.1.gz
ld86.1.gz
ldd.1.gz
ldrdf.1.gz
ldexp.3.gz
ldiv.3.gz
ld.so.8.gz
ldconfig.8.gz

くらいには絞り込めます。もうちょっと考えて、 LD_LIBRARY_PATH 自体で
検索をかけると

  for i in `find /usr/man -type f -and -name "*.gz"`; 
    do gzip -d -c $i|grep LD_LIBRARY_PATH && echo $i; done

  .B LD_LIBRARY_PATH
  .B LD_LIBRARY_PATH
  /usr/man/man8/ld.so.8.gz
  replacements the program cannot use, and sets the LD_LIBRARY_PATH
  .IP LD_LIBRARY_PATH
  /usr/man/man8/update-xaw-wrappers.8.gz
  \fBUID\fP, \fBEUID\fP, \fBUSERNAME\fP, \fBLD_LIBRARY_PATH\fP,
  /usr/man/man1/zshmisc.1.gz
  \s-1LD_LIBRARY_PATH\s0 for SunOS).
  /usr/man/man3/DynaLoader.3pm.gz
  .BR LD_LIBRARY_PATH ", " LD_PRELOAD
  .BR IFS " or " LD_LIBRARY_PATH .
  /usr/man/man7/environ.7.gz

と出るので、 ld.so.8 を最初に調べられますね。

  for i in `find /usr/man -type f -and -not -name "*.gz"` ; 
     do cat $i|grep LD_LIBRARY_PATH && echo $i; done

こっちのほうには、何も出てきませんでした。

> setuid されているという事は、バイナリの所有者の権限で実行
> されると。kterm の場合、
> 
> -rwsr-xr-x   1 root     bin        141772 Nov  4 20:47 /usr/bin/X11/kterm
> 
> なので、root権限で実行されることになります。
> そこで、kterm が実行時に要求する共有ライブラリを単純に LD_LIBRARY_PATH に
> 設定されているものとしてしまうと、誤ったライブラリ(あるいは信頼のおけない
> ライブラリ)をリンクしてしまう可能性があり、非常にヤバイ(う〜ん、このあたり
> 抽象的な表現しかできなです)ことになるかも...

そういうことですね。バイナリが strip されていると nm コマンドで
シンボルを調べることはできませんが、 string かけると使用されている
関数名らしきものが出たりします。自分で適当な共有ライブラリを作って、 
正規な動作の他に「余分なイタズラ」をする関数を入れておいて、そっちを
使うようにさせると、アプリケーション側にバグが無くても妙な動作をさせる
ことができたりするでしょう。

> 以上ですが、添削お願いします。m(_._)m

自分でそういうものを作ったことは無いので、「添削」できるレベルには
ありませんが、すくなくとも私の考えたことと同じことを考えておられる
ようです。 (なので、たぶん同じくらいのレベルにあるものと。)

> >      #わたしのおうちは浜松市、「夜のお菓子」で有名さ。
> 
> そう言えば、しばらく「○○○パイ」食べてないなぁ。。。(^^;;

# ちょっと前には「ジュビロサブレ」をお土産にしたりすることが
# 実は多かったり、、、正月の挨拶には「ふる里総本家」で土産を
# 買うことが最近多いです。 (> おもいきり浜松ローカルな話題 ^^;;)

-- 
     #わたしのおうちは浜松市、「夜のお菓子」で有名さ。
    <xlj06203@xxxxxxxxxxx> : Taketoshi Sano (佐野 武俊)