LD_PRELOAD con setuid binary
Estoy tratando de usarLD_PRELOAD
para precargar una biblioteca con una aplicación que tiene permisos setuid. IntentóLD_PRELOAD
al principio, y parecía que estaba siendo ignorado con el binario setuid, aunque estaba funcionando cuando lo probé con otros comols
, dir
etc.
De la documentación de 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.
ntenté poner la biblioteca en/usr/lib
, /usr/local/lib
y/usr/lib64
con permisos setuid según esta documentación anterior, pero todavía no parece funcionar. Si no doyLD_PRELOAD
una ruta en el caso donde tengo la biblioteca en los directorios estándar con setuid, parece que no puede encontrar la biblioteca. Si le doy el camino, no hace nada.
El binario setuid es un binario de permisos raíz que se ejecuta en un shell de usuario no root. ¿Alguna idea? No estoy seguro de si me falta una ruta, una variable de entorno o si no entiendo la documentación anterior.
Edita: los permisos solicitados son:
Biblioteca
-rwsr-sr-x 1 root root 72580 2012-02-10 07:51
App:
-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)