GNU/Linux >> Linux Esercitazione >  >> Linux

Come rendere eseguibile un file nel terminale Linux?

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/utente
  • g :autorizzazioni per il gruppo
  • o :autorizzazioni per altri
  • a :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.


Linux
  1. Come rendere non cancellabili file e directory, anche per root in Linux

  2. Come gestire le capacità dei file Linux

  3. Come trovare un file in Linux

  4. Come stampare abbastanza file JSON nel terminale Linux

  5. Come rendere il file sparse?

Come rendere eseguibile un file in Linux

Come verificare il checksum su Linux

Come installare Ranger Terminal File Manager su Linux

Come creare un file in Linux usando Terminal

Come collegare simbolicamente un file in Linux

Come copiare file e directory nel terminale Linux