Ogni file che si trova in un file system compatibile con POSIX (Ext4, Btrfs, XFS, JFS ecc.) ha dei "bit di modalità" assegnati a se stesso.
Per rendere eseguibile un file in Linux, è necessario abilitare il bit della modalità eseguibile.
Per impostare il bit della modalità eseguibile, il comando chmod viene utilizzato in questo modo:
chmod u+x <file>
Con ciò, puoi eseguire detto file dal terminale:
./file
Questo è stato il breve riassunto. Vediamo le cose un po' nel dettaglio.
Rendere eseguibile un file in Linux
Esistono diversi modi per rendere eseguibile un file in Linux. I metodi più comuni prevedono l'utilizzo di chmod
comando, in diversi modi.
Per verificare se puoi eseguire un file, usa -l
contrassegna con ls
comando.
$ ls -l lhb.txt
-rw-r--r-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
Nella prima colonna, -rw-r--r--
rappresenta che il proprietario può leggere e scrivere, gli utenti del gruppo possono solo leggere e tutti gli altri possono solo leggere il file.
Nota la mancanza di x
dai simboli di autorizzazione. Ciò significa che lhb.txt
non è eseguibile.
Consiglio vivamente di leggere i permessi dei file di Linux e di rispolverare le nozioni di base per comprendere meglio questi comandi.
Metodo 1:rendi il file eseguibile per tutti
Il primo metodo, e il più semplice, è rendere eseguibile un file usando il seguente comando:
chmod +x <file>
Il x
flag è per impostare o annullare l'autorizzazione eseguibile di un file. E usando +
firmare prima di x
significa che vogliamo impostarlo come file eseguibile.
Ciò renderà il file eseguibile per il proprietario, il gruppo e tutti gli altri. Chiunque nel sistema sarà in grado di eseguirlo.
$ ls -l lhb.txt
-rw-r--r-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
$ chmod +x lhb.txt
$ ls -l lhb.txt
-rwxr-xr-x 1 pratham staff 0 Mar 10 20:49 lhb.txt
Come puoi vedere ora, tutti, il proprietario, il gruppo e altri hanno l'eseguibile x
bit impostato. Ciò significa che tutti possono eseguire questo file ora.
Metodo 2:rendi il file eseguibile solo per determinati utenti o gruppi
Se non vuoi che tutti siano in grado di eseguire un file, dovresti specificare le classi prima di aggiungere/rimuovere i permessi dei file.
Le classi disponibili sono:
u
:autorizzazioni per proprietario/utenteg
:autorizzazioni per il gruppoo
:autorizzazioni per altria
:autorizzazioni per tutti
Quando specifichi una classe, la sintassi è per lo più simile a quella che hai visto nel primo metodo.
chmod <class>+x <file>
Ciò significa che, se voglio rendere il file eseguibile in modo tale che solo il proprietario del file possa eseguirlo e nessun altro, dovrei usare il seguente comando:
chmod u+x <file>
Ecco un esempio:
$ ls -l lhb.txt
-rw-r--r-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
$ chmod u+x lhb.txt
$ ls -l lhb.txt
-rwxr--r-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
Allo stesso modo, per renderlo eseguibile per tutti nel gruppo che possiede quel file, dovrei usare il seguente comando:
chmod g+x <file>
Ecco un esempio:
$ ls -l lhb.txt
-rw-r--r-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
$ chmod g+x lhb.txt
$ ls -l lhb.txt
-rw-r-xr-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
Quando specifichi il a
class, è quasi come se non ne avessi specificato nessuno. Diamo un'occhiata.
$ ls -l lhb.txt
-rw-r--r-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
$ chmod +x lhb.txt
$ ls -l lhb.txt
-rwxr-xr-x 1 pratham staff 0 Mar 10 20:49 lhb.txt
$ chmod 644 lhb.txt #reset permissions
$ chmod a+x lhb.txt
$ ls -l lhb.txt
-rwxr-xr-x 1 pratham staff 0 Mar 10 20:49 lhb.txt
Questi comandi potrebbero apparire in modo diverso, ma hanno lo stesso risultato.
Metodo 3:usa i numeri ottali
Se segui il primo metodo, abiliti il flag eseguibile di un file solo eseguendo un +x
, rendendolo tale che chiunque possa eseguirlo.
Ma a volte potresti non volere che tutti eseguano un file, forse dovrebbe aver bisogno di alcuni privilegi. In tal caso, puoi specificare il set completo di autorizzazioni.
Questo di solito viene fatto fornendo un valore ottale o un valore simbolico per abilitare i permessi dei file.
Ciò consente di avere un controllo più granulare su come vengono impostati i flag. Di seguito è riportata la sintassi per l'utilizzo di valori ottali con chmod
comando:
chmod <octal> <file>
Se non sei bravo con i numeri, puoi utilizzare un calcolatore chmod online, che ti aiuta a generare valori ottali corretti e quindi evitare di utilizzare il valore sbagliato e di rovinare i permessi dei file.
Ad esempio, voglio rendere il file eseguibile solo per il proprietario e il gruppo, devo prima conoscere le sue autorizzazioni correnti e aggiungere i bit eseguibili sopra di esso usando [chmod-calculator].
Vediamo come farlo.
$ ls -l lhb.txt
-rw-r--r-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
$ chmod 754 lhb.txt
$ ls -l lhb.txt
-rwxr-xr-- 1 pratham staff 0 Mar 10 20:49 lhb.txt
Come puoi vedere, solo il proprietario e il gruppo possono eseguire il file.
Conclusione
Questo articolo illustra come rendere eseguibile un file in un sistema Linux. Si è concentrato principalmente sui diversi modi di usare chmod
comando. Se vuoi saperne di più, abbiamo alcuni esempi su come usare il chmod
comando.