Так как вы, по-видимому, могли запустить Bash, у вас есть основы справа: вам нужно скопировать все библиотеки, перечисленные в , в каталог
в каталог на пути нагрузки библиотеки , а также сам погрузчик ( /Lib64/ld-inux-x86-64.SO.2
), который должен быть в месте, жестко закодированном в исполняемых файлах.
Если вы получите ошибку
error while loading shared libraries: libc.so.6: cannot open shared object file
, то вам не хватает, что библиотека указана здесь. Убедитесь, что вы поместите его в правильный каталог под его правильным именем. Убедитесь, что вы скопировали файл библиотеки, а не только символическую ссылку.
Если вы получите ошибку
ls: error while loading shared libraries: libpthread.so.0: wrong ELF class: ELFCLASS32
, то вы скопировали библиотеку на неправильную архитектуру - вы должны скопировать 32-битную libpthread.so.0
, но вы используете 64-битный библиотека.
Если у вас есть дополнительные проблемы, это может помочь узнать именно там, где погрузчик пытается найти библиотеки. Поместите в stroce
двоичной в Chroot (либо статически составляемый один, либо динамически скомпилирован один плюс все библиотеки им нуждаются), и запустить chroot ls
и посмотреть, что именно Неспособность. Или запустить stroace chroot ls
для использования stroace
двоичных данных, которые снаружи Chroot.
Вот пример использования петли:
checkit ()
{
p="$1"
echo "Do you wish to kill $p"
select yesno in "Yes" "No"
do
case $yesno in
Yes) $ kill -9 "$p";;
No) exit;;
esac
done
}
for p in $(ps -o pid=)
do
checkit $p
done
Взгляните на man ps
для получения подробной информации о настройке вывода ps. Или: http://linux.die.net/man/1/ps Или: http://unixhelp.ed.ac.uk/CGI/man-cgi?ps