GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi les bibliothèques partagées sous Linux sont-elles exécutables ?

En fait ça dépend du ldd la mise en oeuvre. ldd est généralement un script, vous pouvez le modifier pour voir où et pourquoi vous obtenez cette erreur.

Sur Ubuntu 10.04, ldd vérifie le read autorisation seulement. Cela peut donner l'erreur pas un exécutable dynamique si le fichier n'est pas un ELF (Executable and Linkable Format ). Les bibliothèques ici sont toutes -rw-r--r-- , par exemple

$ 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

Ce n'est pas choquant de vouloir un x accès à une bibliothèque partagée. Le executable mode est une convention qui donne au système d'exploitation un autre niveau de contrôle des droits d'accès. Le chargeur exécutable contrôle cet accès, pour s'assurer que l'utilisateur peut l'exécuter, mais aussi pour éviter les erreurs (certains scripts ou programmes ne doivent pas être exécutés par certaines personnes).

Cela pourrait être étendu aux bibliothèques partagées pour la même raison - mais les bibliothèques partagées ne peuvent pas exécuter par eux-mêmes, et sont moins susceptibles d'être utilisés par accident ). Ainsi le besoin est moins évident (le r l'accès suffit).


Vous pouvez en fait exécuter de nombreuses bibliothèques, voyez par exemple ce qui se passe lorsque vous tapez /lib/libc.so.6 dans votre shell sur un système GNU/Linux récent.


Linux
  1. Linux - Pourquoi Setuid ne fonctionne-t-il pas ??

  2. Bibliothèques graphiques Linux 3D ?

  3. Introduction aux bibliothèques partagées Linux (comment créer des bibliothèques partagées)

  4. Comment afficher toutes les bibliothèques partagées utilisées par les exécutables sous Linux ?

  5. Suppression des bibliothèques partagées Linux

Autorisations Linux 101

Comment réparer l'erreur "pacman:erreur lors du chargement des bibliothèques partagées" dans Arch Linux

Comment personnaliser les environnements utilisateur Linux

Comment répertorier les bibliothèques partagées utilisées par les exécutables sous Linux

Linux – Pourquoi le vrai et le faux sont-ils si grands ?

Pourquoi et comment certaines bibliothèques partagées sont-elles exécutables, comme si elles étaient des exécutables ?