Hozzászólások
Teszt képpen készítettem egy mini rendszert amibe az mc-t is bele akartam rakni. Minden proginál megnéztem ldd-vel mit használ és beraktam a lib-be, ez a bash, cat, grep... -nél ment is de az mc segfault-ol ha chroot-olok a mini rendszerre.
Tudja vki mi lehet?
Hiba üzenet:
** (process:21890): CRITICAL **: file utilunix.c: line 81 (init_groups): assertion `pwd != NULL' failed
Segmentation fault
teszt rendszer:
linux:~/test/minilnx # ls -R
.:
. .. bin dev etc lib proc root tmp var
./bin:
. .. bash cat grep insmod ls lsmod mc mkdir rmmod
./dev:
. .. console null ram0 zero
./etc:
. .. group passwd shadow
./lib:
. libICE.so.6 libacl.so.1 libdl.so.2 libhistory.so.4 libpthread.so.0 libselinux.so.1
.. libSM.so.6 libattr.so.1 libglib-2.0.so.0 libm.so.6 libreadline.so.4 libslang-utf8.so.1
ld-linux.so.2 libX11.so.6 libc.so.6 libgpm.so.1 libncurses.so.5 librt.so.1
./proc:
. ..
./root:
. .. .bash_history .mc
./root/.mc:
. ..
./tmp:
. .. mc-0
./tmp/mc-0:
. ..
./var:
. .. log
./var/log:
. ..
- A hozzászóláshoz be kell jelentkezni
Annyit látok, hogy a glibc/getpwuid() ad vissza NULL-t, amiről a leírásban azt írják, hogy a kapott user-id alapján keresi ki a user database-ből a user-info-t amit egy passwd struct-ba tölt be, ha megtalálja. Viszont Én nem tom, hogy a user database alatt mit ért... Alá raktam a passwd, shadow, group-ot de ez kevés neki. Mi lehet a user database amiben a glibc keres?
- A hozzászóláshoz be kell jelentkezni
Az strace segítségével sikerült megoldani ezen cikk alapján: http://www.devchannel.org/devtoolschannel/03/10/24/2057246.shtml.
A következő lib-ek hiányoztak amit az ldd nem jelzett ki:
libnsl.so.1
libnss_compat.so.2
libnss_files.so.2
nsswitch.conf
- A hozzászóláshoz be kell jelentkezni