GNU/Linux >> Znalost Linux >  >> Linux

Existuje shell, který kontroluje, zda je kód podepsán?

Ano a ne.

Distribuce softwaru pro Linux funguje poněkud odlišně od distribuce softwaru pro Windows. Ve světě (neembedded) Linuxu je primární způsob distribuce softwaru prostřednictvím distribuce (Ubuntu, Debian, RHEL, Fedora, Arch atd.). Všechny hlavní distribuce podepisují své balíčky systematicky přibližně deset let.

Když je software distribuován nezávisle, je na prodejci, aby rozhodl, jak bude software dodávat. Dobří dodavatelé poskytují zdroje balíčků, které jsou kompatibilní s hlavními distribucemi (neexistuje žádný jednotný distribuční mechanismus pro celý Linux:distribuce softwaru je jedním z hlavních bodů rozdílu mezi distribucemi) a které jsou podepsány klíčem dodavatele. Linuxové distribuce zřídka fungují jako podepisovací autorita pro dodavatele třetích stran (Canonical to dělá s partnery Ubuntu, ale to pokrývá jen velmi málo prodejců) a myslím si, že všechny hlavní distribuce používají síť důvěry PGP spíše než infrastrukturu veřejných klíčů TLS, takže je na uživateli, aby zjistil, zda chce klíči důvěřovat.

Neexistuje žádný speciální mechanismus, který by odlišoval softwarové balíčky, které se skládají z jednoho skriptu, od softwarových balíčků, které se skládají z nativního spustitelného souboru, datového souboru nebo více souborů. Ověřování podpisu také není zabudováno do žádného běžného překladače skriptů, protože ověření softwarového balíčku je zcela ortogonální záležitostí při spuštění skriptu.

Myslím, že Windows označí soubory jejich původem a vyžaduje potvrzení uživatele ke spuštění souboru, jehož původ je „stažený“ spíše než „místní“. Linux ve skutečnosti podobný mechanismus nemá. Nejbližší věcí je oprávnění ke spuštění:stažený soubor nemá oprávnění ke spuštění, uživatel je musí explicitně povolit (chmod +x na příkazovém řádku nebo ekvivalentní akcí ve správci souborů).


Pokud zamykáte možnost uživatelů spouštět skripty pomocí sudo pak můžete použít digest funkčnost.
Hash skriptu/spustitelného souboru můžete zadat v sudoers který bude ověřen sudo před popravou. Takže i když to není totéž jako podepisování, poskytuje vám základní záruku, že skript alespoň nebyl upraven, aniž by byly upraveny i sudoery.

Pokud je před názvem příkazu uvedena předpona Digest_Spec, bude příkaz úspěšně odpovídat pouze v případě, že jej lze ověřit pomocí zadaného výtahu SHA-2. To může být užitečné v situacích, kdy má uživatel vyvolávající sudo přístup k zápisu do příkazu nebo jeho nadřazeného adresáře. Podporovány jsou následující formáty přehledu:sha224, sha256, sha384 a sha512. Řetězec může být specifikován v hexadecimálním nebo base64 formátu (base64 je kompaktnější). Existuje několik nástrojů schopných generovat SHA-2 digesty v hexadecimálním formátu, jako je openssl, shasum, sha224sum, sha256sum, sha384sum, sha512sum.

http://www.sudo.ws/man/1.8.13/sudoers.man.html


Linux neposkytuje možnost omezit provádění bash skriptů založených na digitálních podpisech.

Existuje nějaká práce na ověřování binárních spustitelných souborů. Informace naleznete na https://lwn.net/Articles/488906/.


Linux
  1. Počítejte v linuxovém shellu s GNU bc

  2. 5 nejlepších blogovacích programů pro Linux Desktop

  3. Existuje standardní fiktivní spustitelný soubor, který v Linuxu nic nedělá?

  1. 3 open source nástroje, díky kterým je Linux ideální pracovní stanicí

  2. Aliasy příkazového řádku v prostředí Linux

  3. Linux – proprietární nebo uzavřené části jádra?

  1. Udělejte z meditace svůj další editor kódu pro Linux

  2. Jak změnit výchozí prostředí v Linuxu

  3. Linux – Existuje nějaký způsob, jak zjistit rychlost vaší paměti pomocí softwaru?