Date: Thu, 16 Dec 2004 02:43:12 +0300 From: "Andrew P." <infofarmer@mail.ru> To: Kris Kennaway <kris@obsecurity.org> Cc: questions@freebsd.org Subject: Re: ld-elf.so.1: Shared object"libintl.so.6" not found Message-ID: <41C0CC10.4020109@mail.ru> In-Reply-To: <20041215214415.GB99588@xor.obsecurity.org> References: <20041215195403.GB68003@xor.obsecurity.org> <41C0A08E.7070801@mail.ru> <20041215214415.GB99588@xor.obsecurity.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Kris Kennaway wrote: >>>>Starting ppp as "root" >>>>/usr/libexec/ld-elf.so.1: >>>>Shared object "libintl.so.6" not found >>>><...> >>> >>> >>>OK, but that's not coming from executing /usr/sbin/ppp since you've >>>shown us that it's not in fact linked to libintl, as expected (you >>>could also verify this by executing ppp by hand). Can you show us >>>your /etc/rc.conf? Perhaps it's not running /usr/sbin/ppp but some >>>other binary. >>> >> >>Indeed, I tried to "# ldconfig -elf /usr/lib /usr/lib/compat" (so >>that ld-elf cannot find libintl), but ppp loaded anyways. Attached >>is my kernconf and a few rc scripts. > > > Eek, I only asked for rc.conf, not all that other junk :) > > I'm guessing that the error message is not in fact from loading ppp, > but something else..one candidate would be sshd, which you may have > replaced by a non-system version. Please run ldd /usr/sbin/sshd and > check this. > > If not, then change the rc script to run with "#!/bin/sh -x" and take > a closer look at what command is being run that returns the error. > Well, I ran ldd /usr/sbin/sshd, ldd /usr/sbin/*, ldd /usr/bin/*, ldd /sbin/*, ldd /bin/*; looked through it, grepped for 'intl' without any instances found. Then I added two echo lines to the rc.network script: echo "Starting ppp as \"${ppp_user}\"" echo "JUST BEFORE - ${ppp_command}" su -m ${ppp_user} -c "exec ${ppp_command}" echo "JUST AFTER" And here's what I've got after reboot: # dmesg -a <...> Starting ppp as "root" JUST BEFORE - /usr/sbin/ppp -quiet -ddial default /usr/libexec/ld-elf.so.1: Shared object "libintl.so.6" not found JUST AFTER <...> # ldd /usr/bin/su /usr/bin/su: libutil.so.3 => /usr/lib/libutil.so.3 (0x28069000) libskey.so.2 => /usr/lib/libskey.so.2 (0x28072000) libmd.so.2 => /usr/lib/libmd.so.2 (0x28079000) libcrypt.so.2 => /usr/lib/libcrypt.so.2 (0x28082000) libkrb.so.3 => /usr/lib/libkrb.so.3 (0x2809b000) libcrypto.so.3 => /usr/lib/libcrypto.so.3 (0x280b4000) libcom_err.so.2 => /usr/lib/libcom_err.so.2 (0x281ab000) libc.so.4 => /usr/lib/libc.so.4 (0x281ad000) Here I almost pressed the "Send" button in my Thunderbird, but oops. Back to the shell :-) # man su <...>A shell is then executed.<...> Yep, my default shell for root is bash. # ldd bash bash: libncurses.so.5 => /usr/lib/libncurses.so.5 (0x280e0000) libintl.so.6 => /usr/local/lib/libintl.so.6 (0x28121000) libc.so.4 => /usr/lib/libc.so.4 (0x2812a000) libiconv.so.3 => /usr/local/lib/libiconv.so.3 (0x281c3000) So apparently I have probably changed the default shell from csh to bash on both machines right after that portupgrade. I changed back to sh now - and the error is gone. The only question I have now is how come I've never read about this? I've read the Handbook and the Complete Freebsd and literally thousands of other pages concerning FreeBSD management. I have never seen a warning about changing the default shell for root. Or am I just too blind?.. Anyways, thank you Kris and Toomas for your kindest response! Thanx! Best wishes, Andrew P.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?41C0CC10.4020109>