GNU/Linux >> Belajar Linux >  >> Linux

Mengapa pustaka bersama di Linux dapat dieksekusi?

Sebenarnya itu tergantung pada ldd penerapan. ldd biasanya berupa skrip, Anda dapat mengeditnya untuk melihat di mana dan mengapa Anda mendapatkan kesalahan itu.

Di Ubuntu 10.04, ldd memeriksa read izin saja. Ini mungkin memberikan kesalahan bukan eksekusi dinamis jika file tersebut bukan ELF (Format yang Dapat Dijalankan dan Dapat Ditautkan ). Lib di sini semuanya -rw-r--r-- , misalnya

$ 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

Tidak mengherankan jika menginginkan x akses untuk perpustakaan bersama. executable mode adalah konvensi yang memberi OS tingkat kontrol hak akses yang lain. Pemuat yang dapat dieksekusi mengontrol akses tersebut, untuk memastikan pengguna dapat menjalankannya, tetapi juga untuk mencegah kesalahan (beberapa skrip atau program tidak boleh dijalankan oleh beberapa orang).

Ini dapat diperluas ke pustaka bersama untuk alasan yang sama - tetapi pustaka bersama tidak dapat berjalan sendiri, dan lebih kecil kemungkinan kesalahan digunakan secara tidak sengaja ). Jadi kebutuhannya kurang jelas (kode r cukup akses).


Anda sebenarnya dapat mengeksekusi banyak pustaka, lihat misalnya apa yang terjadi saat Anda mengetik /lib/libc.so.6 di shell Anda pada sistem GNU/Linux terbaru.


Linux
  1. Linux – Mengapa Setuid Tidak Bekerja??

  2. Perpustakaan Grafis 3d Linux?

  3. Linux – Apakah Kernel Linux/unix yang Berbeda Dapat Dipertukarkan?

  1. Bagaimana cara menampilkan semua pustaka bersama yang digunakan oleh executable di Linux?

  2. Mengapa Makefile di Linux sangat berguna?

  3. Mengapa melindungi kernel Linux dari pengguna root?

  1. Izin Linux 101

  2. Cara Mendaftar atau Mengurutkan Semua File berdasarkan Ukuran di Linux

  3. Mengapa file .so dapat dieksekusi?