• 締切済み

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 何度も何度も再インストールしてばかりで疲れました。ぜひ知恵を お貸し下さい。

みんなの回答

  • mph
  • ベストアンサー率54% (39/72)
回答No.5

基本的にはonosukeさんの方法でいけるはずですが、問題は古いpasswdファイルが残ってたりしないかどうかだけです。 一番簡単なのは最新のslackwareのshadowののパッケージを上書きインストールすることですが、いまのパスワードコマンドを生かす方向で対応するならば、plamoからlibshadow.{a,so.1,soなど}をコピーする方法もあります。 特殊なことをしていないのであればslackので十分な気がします。

  • onosuke
  • ベストアンサー率67% (310/456)
回答No.4

Slackwareなんてなつかしいなぁ~ と思いを馳せつつ,ちょいと調べてみると。。 ftp.cdrom.comにSlackware見当たらず,ショッーーク!! 気を取り直し,別のところから shadow.tgz を入手。 中覗いてみると,いやぁPAMなんざ入ってないですね。 さすがというべきか,Slackware。 てなわけで(本題),passwd入れなおすなら,shadow.tgzです。 旦那。

  • onosuke
  • ベストアンサー率67% (310/456)
回答No.3

横槍になっちゃいますが,日にちあいてるようなので… そのメッセージで見つからない(not found)と出ている, libshadow.so.0 という,共有ライブラリが必要です。 Slackwareのpasswd周りPackageを入れ直す,というのもひとつの手。 # 多分,Slackware8の方はPAM使ってるんだろうなぁ。

  • mph
  • ベストアンサー率54% (39/72)
回答No.2

私はslackもplamoも利用していないので詳細(shared libのバージョンの不一致等)は分かりませんが、 とりあえず、 ldd /usr/bin/passwd の結果がないと何ともいえません。 たぶん、slackとplamoで利用しているライブラリのバージョンが違う等の問題 だと思います。

hashio1
質問者

補足

# 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) こんなにでました。。。復旧手順はあるのでしょうか。

  • selenity
  • ベストアンサー率41% (324/772)
回答No.1

何を使ってどうバックアップした野でしょうか? 通常UNIXのバックアップといえばtarまたはddあたりを使うことが多いのですが、、、 まず、こういったバックアップの仕方は結構危険です。 LinuxでDistributionを変更するということは、Windowsのバージョンの変更に匹敵します。 多分、SetUIDを立ててあげれば復旧するでしょう。

hashio1
質問者

補足

すみません。説明が足りませんでした。 /usr 以下のバックアップには tar cvf コマンドを使いました。 それを新しい環境の / にコピーして tar xvf コマンドで展開しました。 # ls -al /usr/bin/passwd -r-s--x--x 1 root root 24252 Sep 17 2000 passwd これは正常な状態でしょうか?

関連するQ&A