Sistemi UNIX simili come Linux o MacOS non eseguono file eseguibili solo perché hanno un'estensione specifica. Per rendere un file direttamente eseguibile, è necessario che il set di bit eseguibili ( chmod +x file
) non venga eseguito automaticamente quando si salva l'allegato.
Tuttavia, ci sono molti tipi di file che l'ambiente desktop su Linux (e altri sistemi operativi) come GNOME, KDE, ... si aprirà automaticamente. Questo è per uno basato sull'estensione del file simile a quello che fa Windows, cioè i file * .doc verranno aperti con alcune suite per ufficio, * .pdf con un PDF-Viewer ecc. Se l'estensione è mancante, la maggior parte degli ambienti desktop guarderà la "magia" dei file, cioè usa libmagic per determinare il tipo di file e aprirlo nell'applicazione appropriata . Su MacOS c'è anche un meccanismo aggiuntivo in cui il tipo di file e l'applicazione sono inclusi come attributi (fork) in aggiunta al file, ma queste informazioni si perdono di solito durante il trasferimento di un file tramite posta (anche se alcuni programmi di archiviazione preservano questi attributi). p>
Ma NON contrassegnerà automaticamente i file scaricati eseguibili ed eseguirli. Inoltre, non eseguirà direttamente script di shell, Perl-Scripts, Python-Scripts ecc. Che non hanno impostato esplicitamente il bit di esecuzione.
È comunque possibile che tu abbia scaricato un archivio e l'abbia estratto. Il tipo specifico di formati di archivio (come Tar, di solito con estensioni come * .tar, * .tgz e simili) includerà le autorizzazioni di file come il bit eseguibile e queste saranno in genere conservate durante l'estrazione dell'archivio. In questo caso non è necessaria alcuna impostazione aggiuntiva del bit eseguibile e un programma può essere eseguito direttamente.
Quindi, resistendo ai bug nel visualizzatore PDF, nell'applicazione di Office o in applicazioni simili che vengono avviate automaticamente quando si fa clic su un file e si conservano gli archivi, si è generalmente più sicuri in Linux poiché non avvia automaticamente i programmi scaricati da qualche parte. D'altra parte, le applicazioni possono impostare un attributo speciale per i file in Windows per specificare che l'origine del file non è attendibile, il che induce Windows a chiedere conferma prima di eseguire il file.
Se vuoi ancora filtrare i file eseguibili negli allegati potresti usare libmagic o lo strumento basato su libmagic file per rilevare il tipo di file. Nota che questi sono solo euristica e il rilevamento potrebbe in teoria restituire un tipo diverso, specialmente per tipi di file molto simili (come tutti i documenti dell'ufficio basati su ZIP, file JAR, file ZIP ..). Ma dato che i binari ELF oi file con una definizione esplicita dell'interprete in cima (cioè #!/usr/bin/python
) hanno una struttura chiara si può fare affidamento su queste euristiche per questi tipi di file.
Oltre a quella nota, le recenti versioni di Windows non solo utilizzano l'estensione del file per determinare cosa fare con il file. Se il file non ha un'estensione associata a un'applicazione, cercherà di rilevare il tipo di file senza estensione simile a come è fatto in Linux.