LD_PRELOAD с двоичным setuid

Я пытаюсь использовать LD_PRELOAD для предварительной загрузки библиотеки приложением, имеющим разрешения setuid. Сначала попробовал LD_PRELOAD , и мне показалось, что он игнорируется двоичным файлом setuid, хотя он работал, когда я пробовал его с другими, такими как ls , dir и т.д.

Из документации LD_PRELOAD:

   LD_PRELOAD
          A whitespace-separated list of additional, user-specified, ELF shared
          libraries to be loaded before all others.  This can be used to
          selectively override functions in other shared libraries.  For set-
          user-ID/set-group-ID ELF binaries, only libraries in the standard
          search directories that are also set-user-ID will be loaded.

Я попытался поместить библиотеку в / usr / lib , / usr / local / lib и / usr / lib64 с разрешениями setuid в соответствии с приведенной выше документацией, но, похоже, он все еще не работает. Если я не укажу LD_PRELOAD путь в случае, когда у меня есть библиотека в стандартных каталогах с setuid, она не сможет найти библиотеку. Если я укажу ему путь, он ничего не сделает.

Двоичный файл setuid - это двоичный файл с полномочиями root, который запускается в пользовательской оболочке без полномочий root. Есть предположения? Не уверен, что мне не хватает пути, переменной среды или я неправильно понимаю приведенную выше документацию.

Редактировать : требуемые разрешения:

Библиотека:

-rwsr-sr-x 1 root root 72580 2012-02-10 07:51

Приложение:

-rwsr-xr-x 1 root root 137517601 2012-02-10 

env | grep LD
LD_LIBRARY_PATH=/usr/lib (I added this manually myself, usually LD_LIBRARY_PATH is empty)
9
задан Zsolt Botykai 11 February 2012 в 10:47
поделиться