GNU/Linux >> Znalost Linux >  >> Linux

Proč jsou soubory .so spustitelné?

Mám podezření, že je to pravděpodobně jen z historických důvodů.

Odpověď BlueBomber je pravděpodobně historicky správná, ale ve skutečnosti není nutná aby sdílené objekty byly spustitelné.

Na mém systému Ubuntu nejsou. Z 30 /lib/*.so* a 600 /usr/lib/*.so* pouze jeden má oprávnění ke spuštění, a to je pravděpodobně jen závada.

Oprávnění k provedení povoluje spuštění souboru prostřednictvím jednoho z exec*() funkce; soubory sdílených objektů obsahují spustitelný kód, ale tímto způsobem se nespouštějí.

Na druhou stranu v systému CentOS 5.7, ke kterému mám přístup, tyto soubory jsou spustitelný; totéž platí pro systém SPARC Solaris 9. (Bylo by zajímavé zkusit vypnout spustitelná oprávnění u některých z těchto souborů, abyste zjistili, zda to něco neporušuje, ale nejsem schopen to udělat.)

(Jakou distribuci Linuxu používáte?)

AKTUALIZACE:

Tato odpověď na tuto otázku ukazuje příklad (HP-UX) systému, kde je skutečně vyžadován prováděcí bit. To se nezdá být případem Linuxu, kde některé distribuce nastavují prováděcí bit (pravděpodobně z historické setrvačnosti) a jiné ne. Nebo to možná některé Linuxy skutečně vyžadují.

Další datový bod:Na mém systému Ubuntu jsem se právě pokusil vytvořit svůj vlastní sdílený objektový soubor. Vygenerovaný soubor "libfoo.so" byl vytvořen s oprávněním ke spuštění, ale pokud ručně chmod -x program, který jej používá, stále funguje.

V každém případě nastavení oprávnění ke spuštění na *.so soubory jsou většinou neškodné (a rozhodně méně otravné, řekněme nastavení oprávnění ke spouštění u zdrojových souborů).

AKTUALIZACE 2:

Jak upozorňuje fwyzard v komentáři, nějakých *.so soubory lze skutečně spustit. Například v mém současném systému spouštění /lib/x86_64-linux-gnu/libc-2.27.so vypíše informace o verzi knihovny GNU C. /lib/x86_64-linux-gnu/libpthread-2.27.so se chová podobně.


Linux
  1. Otestovat, zda existují soubory odpovídající vzoru, aby bylo možné spustit skript?

  2. Skript pro zjištění, zda jsou soubory obrázky?

  3. Proč je chmod -R 777 / destruktivní?

  1. Proč může Rm odebrat soubory pouze pro čtení?

  2. Když spustitelné soubory nejsou?

  3. Co jsou soubory .run?

  1. Proč jsou řízená cloudová řešení stále oblíbenější

  2. Co jsou řídké soubory v Linuxu

  3. .o soubory vs. .a soubory