GNU/Linux >> Linux Esercitazione >  >> Linux

Comando Chmod:come modificare le autorizzazioni dei file in Linux

Uno dei primi comandi che ho imparato su Linux è stato il touch comando che crea un file utilizzando la riga di comando.

Se provi a creare, ad esempio, un file di testo, tutto ciò che devi fare è digitare touch filename.txt , premi Invio e il file viene creato per te nella directory in cui ti trovi. Puoi quindi scrivere ciò che desideri utilizzando l'editor di file di tua scelta.

Tuttavia, quando si tratta di creare script, le cose possono diventare un po' più complicate. Perché?

Provo a mostrartelo con un altro esempio. Supponiamo di voler creare uno script usando il tocco. Digita touch example.sh , premi Invio e il gioco è fatto. Ancora una volta, puoi scriverci usando un editor di file.

Con tutto pronto, non resta che testarlo. Digita ./sample.sh e premi Invio per vedere il tuo script in azione e... ma cosa mi dice questo messaggio?

Perché abbiamo bisogno delle autorizzazioni?

io sono l'amministratore! Come mai non ho l'autorizzazione per eseguire uno script che ho scritto io stesso pochi secondi fa?

In realtà c'è una ragione per questo e, ad essere onesti, la maggior parte degli utenti dovrebbe esserne grata, dal momento che non essere in grado di eseguire script senza sapere cosa stai facendo spesso ti impedisce di mettere a rischio il tuo sistema.

Facciamo prima una breve chiacchierata sui permessi. Quindi passeremo a scoprire come cambiarli.

Per ottenere qualche informazione in più sul tuo file, useremo il comando che elenca i file in una directory:ls .

Dopo aver digitato ls e premendo Invio, questo è ciò che otteniamo nella riga di comando:

Quello che fa è elencare tutti i file visibili nella directory in cui ti trovi al momento. Aggiungendo il flag -l ad esso, fornisce ulteriori informazioni sui file nella directory. Questo è il risultato quando digitiamo ls -l e premi Invio:

Vediamo gli stessi file, ma con molte informazioni prima di essi. Per cominciare, abbiamo una sequenza di dieci trattini e lettere che all'inizio possono sembrare prive di significato. Questa è in realtà la mappatura delle autorizzazioni del tuo file.

Il primo carattere può essere un trattino (- , per un file comune), un d (per una directory) o un l (per un collegamento morbido). Per semplicità, mi concentrerò sui file semplici, sebbene le autorizzazioni siano valide per tutti questi tipi di file/cartelle.

Dopo il primo carattere, gli altri 9 possono essere divisi in gruppi di tre. Il primo trio mostra le autorizzazioni per l'utente corrente. Il prossimo mostra le autorizzazioni per questo gruppo. Gli ultimi tre sono le autorizzazioni per tutti gli utenti che non rientrano in questa categoria.

Per la nostra spiegazione, concentriamoci sulle prime tre autorizzazioni, dal momento che non cambieremo gruppi o qualcosa del genere.

Il primo trio dice rw- .

È ora di capire cosa sono. Ci sono tre cose che puoi normalmente fare con un file:leggerlo, scriverci dentro ed eseguirlo. Questo è, fondamentalmente, cosa significano quelle lettere.

Il primo r sta per il permesso di lettura. Quindi abbiamo w per il permesso di scrittura. Infine, un trattino, il che significa che qualunque cosa dovrebbe esserci non c'è. Quello che dovrebbe esserci è un x , che sta per eXecutable.

Quindi, parlando dell'utente corrente (me), i permessi che ho per questo file sono i permessi di lettura e scrittura. Tuttavia, non posso eseguire sample.sh file. Ecco perché, durante il tentativo di eseguire il file, ho ricevuto il messaggio "autorizzazione negata".

Come posso, quindi, eseguire questo file? Ecco dove si trova il chmod entra in gioco il comando.

Cosa fa chmod?

Bene, ho menzionato le "autorizzazioni" dall'inizio dell'articolo. Estendiamo un po' questa spiegazione per dire che sono "permessi per accedere a un file in una determinata modalità . Ciò significa che r denota il permesso di accedere al file in modalità lettura, w denota il permesso di accedere al file in modalità scrittura e x denota il permesso di accedere al file in modalità eseguibile.

Perché te lo dico? A causa del comando di cui tratta questo articolo. chmod sta per 'cambia modalità'. In altre parole, quando usi questo comando, stai cambiando la modalità di un file in qualsiasi modalità tu voglia usare.

Come utilizzare gli operatori con cmod

È necessario utilizzare un operatore con il comando chmod. Serve a specificare il tipo di modifica che si desidera apportare ai permessi.

Ad esempio, + è l'operatore che usi per aggiungere un'autorizzazione a quelle che il file ha già. - rimuove un'autorizzazione dall'elenco. C'è anche il = operatore, che reimposta i permessi in modo da poterli definire di nuovo.

Nel nostro caso, digitando chmod -w sample.sh , quello che sto chiedendo al comando di fare è rimuovere il permesso di scrittura. Quindi quello che dovrei fare per aggiungere l'autorizzazione eseguibile è digitare chmod +x sample.sh .

Se ora provo ad eseguire il file, qualsiasi cosa inserisco nello script verrà eseguita.

Usando ls -l , questo è quello che avrei ora.

Chi ottiene il permesso?

Un'altra cosa che vale la pena sottolineare è chi sta ottenendo questo permesso. Vedrai che la "x" viene assegnata a tutti gli utenti, al proprietario del file, al gruppo e ad altri. Se questo non è quello che stai cercando, forse è una buona cosa rimuovere di nuovo l'autorizzazione eseguibile con chmod -x sample.sh .

Per abilitare l'autorizzazione solo per il proprietario del file (io, in questo caso), dovremmo aggiungere una 'u' prima di '+x', in questo modo:

chmod u+x sample.sh

Digitando ls -l , ecco cosa hai:

Se si desidera concedere l'autorizzazione sia per il proprietario che per il suo gruppo, il comando sarebbe chmod ug+x sample.sh .

Grande! Penso che questo copra ciò che vorrei mostrarti. Ci sono altre cose che potrebbero interessarti, come come usare chmod con valori ottali o binari per rappresentare i permessi. Ma queste sono modalità che usiamo per ottenere gli stessi risultati e credo che le lettere siano un modo più semplice per ottenere questi risultati.

Nel caso desideri maggiori informazioni sul comando, una cosa che puoi fare è digitare chmod --help , che ti fornirà un briefing su ciò che il comando può fare. Una descrizione ancora più dettagliata può essere ottenuta digitando man chmod .

Spero che questo articolo ti sia stato utile. Per ulteriori articoli sui comandi Linux, controlla freecodecamp.org/news.

Buona codifica! 😃


Linux
  1. Come salvare l'output dei comandi in un file in Linux

  2. Come modificare autorizzazioni e proprietari tramite riga di comando

  3. Come modificare la password in Linux (comando passwd)

  4. Permessi Linux:un'introduzione a chmod

  5. Come utilizzare il comando chmod (Cambia modalità) in Linux

Comando Chown in Linux (Modifica proprietà file)

Come modificare le autorizzazioni in Linux

Comando Chmod in Linux

Impara l'uso del comando chmod (Cambia modalità) in Linux

Come modificare le autorizzazioni dei file

Esempi di comandi chmod di Linux