Sì e no.
La distribuzione del software Linux funziona in modo leggermente diverso dalla distribuzione del software Windows. Nel mondo Linux (non incorporato), il metodo principale per distribuire il software è tramite una distribuzione (Ubuntu, Debian, RHEL, Fedora, Arch, ecc.). Tutte le principali distribuzioni firmano sistematicamente i loro pacchetti da circa un decennio.
Quando il software viene distribuito in modo indipendente, spetta al fornitore decidere come spedire il proprio software. I buoni fornitori forniscono fonti di pacchetti compatibili con le principali distribuzioni (non esiste un meccanismo di distribuzione unificato per tutto Linux:la distribuzione del software è uno dei principali punti di differenziazione tra le distribuzioni) e che sono firmati con la chiave del fornitore. Le distribuzioni Linux raramente fungono da autorità di firma per fornitori di terze parti (Canonical lo fa con i partner Ubuntu, ma copre pochissimi fornitori) e penso che tutte le principali distribuzioni utilizzino la rete di fiducia PGP piuttosto che l'infrastruttura a chiave pubblica TLS, quindi sta all'utente capire se vuole fidarsi di una chiave.
Non esiste un meccanismo speciale che distingue i pacchetti software costituiti da un singolo script dai pacchetti software costituiti da un eseguibile nativo, un file di dati o più file. Né la verifica della firma è integrata in alcun interprete di script comune, perché la verifica di un pacchetto software è una preoccupazione completamente ortogonale rispetto all'esecuzione di uno script.
Penso che Windows annoti i file con la loro origine e richieda la conferma dell'utente per eseguire un file la cui origine è "scaricata" anziché "locale". Linux non ha davvero un meccanismo simile. La cosa più vicina è il permesso di esecuzione:un file scaricato non ha il permesso di esecuzione, l'utente deve abilitarlo esplicitamente (chmod +x
sulla riga di comando o l'azione equivalente in un file manager).
Se stai bloccando la capacità degli utenti di eseguire script tramite sudo
allora potresti usare il digest
funzionalità.
Puoi specificare l'hash di uno script/eseguibile in sudoers
che sarà verificato da sudo
prima di essere giustiziato. Quindi, sebbene non sia la stessa cosa della firma, ti dà una garanzia di base che almeno lo script non è stato modificato senza che anche i sudoer siano stati modificati.
Se un nome di comando è preceduto da Digest_Spec, il comando corrisponderà correttamente solo se può essere verificato utilizzando il digest SHA-2 specificato. Questo può essere utile in situazioni in cui l'utente che invoca sudo ha accesso in scrittura al comando o alla sua directory padre. Sono supportati i seguenti formati digest:sha224, sha256, sha384 e sha512. La stringa può essere specificata in formato esadecimale o base64 (base64 è più compatto). Esistono diverse utility in grado di generare digest SHA-2 in formato esadecimale come openssl, shasum, sha224sum, sha256sum, sha384sum, sha512sum.
http://www.sudo.ws/man/1.8.13/sudoers.man.html
Linux non offre la possibilità di limitare l'esecuzione di script bash basati su firme digitali.
C'è del lavoro sull'autenticazione degli eseguibili binari. Vedere https://lwn.net/Articles/488906/ per informazioni.