- 締切済み
shared libraries の復元方法
バックアップしてあった /usr 以下を新しい環境に上書きコピー したところ、基本的なコマンド(passwd,chfn)が動かなくなりました。 通常、単体で動くプログラムであれば本体だけコピーして実行権を付ければ動作 しますが、passwdコマンドはコピーしただけでは下記のエラーが出て動きません。 shared libraries まで復元したいのですが、何を共有しているのか分かりま せん。復元手段をご教授お願いできますでしょうか? 再インストールした環境 Slack Ware 8 Fullインストール カーネル Linux 2.2.19 バックアップを取った環境 Plamo 2.1 カーネル Linux 2.2.18 # passwd passwd: error while loading shared libraries: cannot open shared object file: cannot load shared object file: No such fi le or directory # which passwd /usr/bin/passwd # file /usr/bin/passwd /usr/bin/passwd: setuid ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked, stripped 何度も何度も再インストールしてばかりで疲れました。ぜひ知恵を お貸し下さい。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- mph
- ベストアンサー率54% (39/72)
基本的にはonosukeさんの方法でいけるはずですが、問題は古いpasswdファイルが残ってたりしないかどうかだけです。 一番簡単なのは最新のslackwareのshadowののパッケージを上書きインストールすることですが、いまのパスワードコマンドを生かす方向で対応するならば、plamoからlibshadow.{a,so.1,soなど}をコピーする方法もあります。 特殊なことをしていないのであればslackので十分な気がします。
- onosuke
- ベストアンサー率67% (310/456)
Slackwareなんてなつかしいなぁ~ と思いを馳せつつ,ちょいと調べてみると。。 ftp.cdrom.comにSlackware見当たらず,ショッーーク!! 気を取り直し,別のところから shadow.tgz を入手。 中覗いてみると,いやぁPAMなんざ入ってないですね。 さすがというべきか,Slackware。 てなわけで(本題),passwd入れなおすなら,shadow.tgzです。 旦那。
- onosuke
- ベストアンサー率67% (310/456)
横槍になっちゃいますが,日にちあいてるようなので… そのメッセージで見つからない(not found)と出ている, libshadow.so.0 という,共有ライブラリが必要です。 Slackwareのpasswd周りPackageを入れ直す,というのもひとつの手。 # 多分,Slackware8の方はPAM使ってるんだろうなぁ。
- mph
- ベストアンサー率54% (39/72)
私はslackもplamoも利用していないので詳細(shared libのバージョンの不一致等)は分かりませんが、 とりあえず、 ldd /usr/bin/passwd の結果がないと何ともいえません。 たぶん、slackとplamoで利用しているライブラリのバージョンが違う等の問題 だと思います。
- selenity
- ベストアンサー率41% (324/772)
何を使ってどうバックアップした野でしょうか? 通常UNIXのバックアップといえばtarまたはddあたりを使うことが多いのですが、、、 まず、こういったバックアップの仕方は結構危険です。 LinuxでDistributionを変更するということは、Windowsのバージョンの変更に匹敵します。 多分、SetUIDを立ててあげれば復旧するでしょう。
補足
すみません。説明が足りませんでした。 /usr 以下のバックアップには tar cvf コマンドを使いました。 それを新しい環境の / にコピーして tar xvf コマンドで展開しました。 # ls -al /usr/bin/passwd -r-s--x--x 1 root root 24252 Sep 17 2000 passwd これは正常な状態でしょうか?
補足
# ldd /usr/bin/passwd libshadow.so.0 => not found libcrypt.so.1 => /lib/libcrypt.so.1 (0x40021000) libc.so.6 => /lib/libc.so.6 (0x4004f000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) こんなにでました。。。復旧手順はあるのでしょうか。