LINUX.ORG.RU

error while loading shared libraries


0

0

Здраствуйте.
После установления на бинарник suid бита при
попытке его запустить :
cannot open shared object file: No such file or directory
Хотя env|grep LIB
LD_LIBRARY_PATH=:/путь/где/лежит/либа
Без установки suid бита бинарник запускается и
нормально работает. Подскажите пожалуйста в чем проблема?
Спасибо.
anonymous

suid бит отменяет LD_LIBRARY_PATH.

это же понятно, иначе было бы очень просто подсунуть
библиотеку, которая вместо open (например) делала бы
system("rm -rf /")

idle ★★★★★
()
Ответ на: комментарий от idle

Спасибо, буду знать :(. А что тогда делать? статически линковать? не очень устраивает, а нужно всего лишь чтоб программа "умела" пинговать (помимо её "прямых обязанностей") заданный хост раз, скажем, в день. Какой способ решения подскажите? Использовать системный пинг не годится ... единственное что в голову приходит, так это : отдельный бинарник и popen к нему. Или есть решение красивее?

anonymous
()
Ответ на: комментарий от anonymous

если у вас есть возможность выставить setuid,
вы можете и библиотеку положить в /lib/, напр.

или сделать setuid wrapper + capset + exec

idle ★★★★★
()
Ответ на: комментарий от anonymous

Есть способ запустить лоадер вручную, указав ему путь к библиотеке, например:

$/lib/ld-linux.so.2 --library-path путь/к/либе прога

Даже на суицидных файлах срабатывает.

Die-Hard ★★★★★
()
Ответ на: комментарий от Die-Hard

> $/lib/ld-linux.so.2 --library-path путь/к/либе прога
>
> Даже на суицидных файлах срабатывает.

срабатывает, но теперь suid бит игнорируется :)
иначе - опять таки - рута было бы очень просто получить

idle ★★★★★
()
Ответ на: комментарий от idle

> срабатывает, но теперь suid бит игнорируется :)

:(

Кстати, нелогично: можно ж было проверять на suid и файл библиотеки заодно!

Die-Hard ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.