GNU/Linux >> Linux の 問題 >  >> Linux

Linux の共有ライブラリが実行可能であるのはなぜですか?

実際には ldd に依存します 実装。 ldd 通常はスクリプトなので、編集してエラーが発生する場所と理由を確認できます。

Ubuntu 10.04 では、ldd read のチェック 許可のみ。 動的実行可能ファイルではありませんというエラーが表示される場合があります ファイルが ELF (Executable and Linkable Format) でない場合 )。ここのライブラリはすべて -rw-r--r-- です 、例えば

$ 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

x が欲しいのは驚くべきことではありません 共有ライブラリへのアクセス。 executable モードは、OS に別のレベルのアクセス権制御を与える規則です。実行可能ローダーは、そのアクセスを制御して、ユーザーが確実に実行できるようにするだけでなく、エラーを防止します (一部のスクリプトまたはプログラムは、一部の人によって実行されるべきではありません)。

これは同じ理由で共有ライブラリに拡張できますが、共有ライブラリは実行できません 誤って使用されるエラーが少なくなります。 )。したがって、必要性はあまり明白ではありません (r アクセスで十分です)。


実際に多くのライブラリを実行できます。たとえば、/lib/libc.so.6 と入力するとどうなるかを確認してください。 最近の GNU/Linux システムのシェルで。


Linux
  1. Linuxユーザー環境をカスタマイズする方法

  2. Linux –ルートディレクトリがA /記号で示されているのはなぜですか?

  3. Linux 3Dグラフィックライブラリ?

  1. Linux で実行可能ファイルが使用するすべての共有ライブラリを表示するには?

  2. Linux 共有ライブラリのストリッピング

  3. Linux のメッセージ キューの短所は何ですか?

  1. root ユーザーから Linux カーネルを保護するのはなぜですか?

  2. なぜ .so ファイルは実行可能ですか?

  3. 一部の共有ライブラリは、なぜ、どのように実行可能であるかのように実行できるのですか?