GNU/Linux >> Linux Esercitazione >  >> Linux

Perché le librerie condivise su Linux sono eseguibili?

In realtà dipende dal ldd implementazione. ldd di solito è uno script, puoi modificarlo per vedere dove e perché ottieni quell'errore.

Su Ubuntu 10.04, ldd verifica la presenza di read solo permesso. Potrebbe dare l'errore non è un eseguibile dinamico se il file non è un ELF (Executable and Linkable Format ). Le librerie qui sono tutte -rw-r--r-- , ad esempio

$ 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

Non è scioccante desiderare un x accesso per una libreria condivisa. Il executable mode è una convenzione che offre al sistema operativo un altro livello di controllo dei diritti di accesso. Il caricatore eseguibile controlla tale accesso, per garantire che l'utente possa eseguirlo, ma anche per prevenire errori (alcuni script o programmi non dovrebbero essere eseguiti da alcune persone).

Questo potrebbe essere esteso alle librerie condivise per lo stesso motivo, ma le librerie condivise non possono funzionare da soli e sono meno soggetti a errori per essere utilizzati accidentalmente ). Quindi la necessità è meno ovvia (il r l'accesso è sufficiente).


Puoi effettivamente eseguire molte librerie, vedi ad esempio cosa succede quando digiti /lib/libc.so.6 nella tua shell su un sistema GNU/Linux recente.


Linux
  1. Linux:perché la directory principale è indicata con un segno /?

  2. Linux – I diversi kernel Linux/unix sono intercambiabili?

  3. Introduzione alle librerie condivise Linux (come creare librerie condivise)

  4. Come mostrare tutte le librerie condivise utilizzate dagli eseguibili in Linux?

  5. Rimozione delle librerie condivise di Linux

Come risolvere l'errore "pacman:errore durante il caricamento delle librerie condivise" in Arch Linux

Come elencare le librerie condivise utilizzate dagli eseguibili in Linux

Come elencare o ordinare tutti i file per dimensione in Linux

Linux:perché vero e falso sono così grandi?

Librerie grafiche 3D di Linux?

Perché i Makefile in Linux sono così utili?