En realidad depende de la lddimplementación. lddgeneralmente es un script, puede editarlo para ver dónde y por qué obtiene ese error.
En Ubuntu 10.04, solo lddbusca el readpermiso. Puede que el error no sea un ejecutable dinámico si el archivo no es un ELF ( formato ejecutable y enlazable ). Las librerías aquí son todas -rw-r--r--, por ejemplo
$ find /usr/lib -type f -name "libm*.so*" -ls
(...)
-rw-r--r-- 1 root root 216800 Feb 26 22:20 /usr/lib/libmp.so.3.1.16
-rw-r--r-- 1 root root 76728 Mar 14 04:23 /usr/lib/libmjpegutils-1.9.so.0.0.0
-rw-r--r-- 1 root root 134464 Jan 29 2010 /usr/lib/libm17n-core.so.0.3.0
-rw-r--r-- 1 root root 290480 Feb 17 2010 /usr/lib/libmtp.so.8.3.2
No es sorprendente querer xtener acceso a una biblioteca compartida. El executablemodo es una convención que le da al sistema operativo otro nivel de control de derechos de acceso. El cargador ejecutable controla ese acceso, para garantizar que el usuario pueda ejecutarlo, pero también para evitar errores (algunas personas no deberían ejecutar algunos scripts o programas).
Esto podría extenderse a las bibliotecas compartidas por la misma razón, pero las bibliotecas compartidas no pueden ejecutarse por sí mismas y son menos propensas a ser utilizadas por accidente ). Por lo tanto, la necesidad es menos obvia (el racceso es suficiente).