Ciò che rende Linux diverso da Windows in termini di esecuzione dei file è che il primo sistema definisce i file eseguibili come file di programma non in base alla loro estensione, ma a uno speciale flag di eseguibilità. Ogni file ha quindi tre modalità di eseguibilità: lettura, esecuzione e scrittura. Sono queste modalità a determinare ciò che il sistema può fare con un determinato file. Quando un utente scarica vari programmi di installazione da Internet o crea uno script, per impostazione predefinita gli vengono assegnate le seguenti modalità: lettura e scrittura. In breve, l'utente non sarà in grado di fare nulla con un programma di questo tipo, in quanto è necessario fare qualcos'altro con esso.
Prima di tutto, però, dobbiamo affrontare una domanda: che cos'è l'eseguibilità e che cosa significa in generale? Partiamo da un programma, che è un insieme di istruzioni eseguite da un processore su un insieme di dati per ottenere il risultato desiderato. Per il processore non c'è differenza tra istruzioni e dati.
Sia le prime che i secondi sono costituiti da cifre - byte. Una certa combinazione di cifre indica al processore la necessità di eseguire una particolare azione. Per il processore non c'è alcuna differenza fondamentale su quale processo eseguire: i dati del sistema operativo o un file di testo. Sia il primo che il secondo verranno eseguiti, ma nel caso di un file di testo la necessità di istruzioni viene di fatto eliminata.
I flag di eseguibilità sono stati inventati per far capire al sistema quali istruzioni devono essere eseguite e quali no. In realtà, il contenuto non cambia in alcun modo a seconda della classe di eseguibilità impostata: la differenza si riduce solo a poche righe. Con gli script tutto funziona allo stesso modo, solo che i comandi non vengono eseguiti dal processore, ma da un interprete, ad esempio, negli script bash, dalla stessa shell bash. Anche i programmi regolari hanno un proprio caricatore: si tratta di ld-linux.so.2.
Il sistema Linux dispone di un'utilità speciale che consente di gestire i flag, chiamata chmod
. Per chiamare questa utilità, è necessario invocare la sintassi:
$ chmod category action flag file_address
A questo punto si deve tenere conto di quanto segue:
Flag - uno dei flag disponibili -
r
(lettura),w
(scrittura),x
(esecuzione).Categoria - può essere impostata per tre categorie: proprietario del file, gruppo di dati e tutti gli altri utenti. Nel comando sono indicate rispettivamente con
u
(utente)g
(gruppo)o
(altro).Azione - può essere + (più), il che significa impostare il flag o - (meno) rimuovere il flag.
Quindi, per rendere uno script eseguibile in Linux, l'utente deve eseguire:
$ chmod u+x file_address
Spesso questo è già sufficiente per renderlo eseguibile, ma se altri utenti devono essere autorizzati a eseguire questi file, è necessario aggiungere altro:
$ chmod ugo+x file_address
Per vederli nel terminale, basta usare l'utilità ls:
$ ls -l file_directory
I flag sono inclusi per tutte le categorie. I primi rwx
sono flag di proprietario, i secondi sono flag di gruppo e i terzi sono per tutti gli altri. Se non è impostato, un trattino prenderà il suo posto.
Disattivare il flag di eseguibile è molto semplice. Si usa lo stesso comando, solo con il segno meno:
$ chmod u-x file_address
Consideriamo ora il problema dell'impostazione della gestibilità nell'interfaccia grafica.
Per i principianti, questa istruzione sarà più semplice. Prendiamo come esempio il gestore di GNOME, Nautilus. Fare clic con il tasto destro del mouse sul nostro programma o oggetto di script per aprire il menu contestuale, quindi selezionare proprietà:
Passare alla scheda permessi e selezionare "Consenti l'esecuzione del file come programma":
Ora verrà lanciato dal sistema direttamente dal gestore. Queste sono le istruzioni complete. Ora non sarà più difficile lanciare un programma o uno script da Internet.