Unix / Linux - Permessi dei file / Modalità di accesso

Ciao a tutti, aspiranti programmatori! Oggi ci immergeremo nel mondo affascinante dei permessi dei file in Unix e Linux. Non preoccupatevi se siete nuovi a questo; alla fine di questo tutorial, sarete esperti di permessi dei file! Insieme intraprenderemo questo viaggio entusiasmante.

Unix / Linux - File Permission

Gli indicatori di permesso

Immagina di essere il guardiano di un cassetto del tesoro. Devi decidere chi può aprirlo, chi può metterci cose e chi può togliere cose. Questo è essenzialmente ciò che sono i permessi dei file in Unix e Linux!

Quando elenchi i file utilizzando il comando ls -l, vedrai qualcosa del genere:

-rwxr-xr-x 1 john users 2048 Gen 15 2023 myfile.txt

Analizziamo quelle misteriose lettere all'inizio:

  • Il primo carattere indica il tipo di file (- per file regolare, d per directory)
  • I successivi 9 caratteri rappresentano i permessi per l'utente, il gruppo e gli altri

Ecco una tabella utile per ricordare cosa significa ogni lettera:

Lettera Significato
r Permesso di lettura
w Permesso di scrittura
x Permesso di esecuzione
- Nessun permesso

Modalità di accesso ai file

Ora parliamo di cosa permettono di fare questi permessi con i file:

  1. Lettura (r): Visualizzare il contenuto del file
  2. Scrittura (w): Modificare o eliminare il file
  3. Esecuzione (x): Eseguire il file come un programma o uno script

Ecco un modo divertente per ricordare: Pensa a "r" come "leggi la ricetta", "w" come "scrivi la ricetta" e "x" come "esegui la ricetta" (cucina il piatto)!

Modalità di accesso alle directory

Le directory hanno permessi simili, ma funzionano un po' diversamente:

  1. Lettura (r): Elenca il contenuto della directory
  2. Scrittura (w): Aggiunge o rimuove file nella directory
  3. Esecuzione (x): Accede alla directory e al suo contenuto

Immagina una directory come una stanza. "r" ti permette di guardare dentro, "w" ti permette di aggiungere o rimuovere mobili e "x" ti permette di entrare nella stanza.

Modifica dei permessi

Ora che comprendiamo i permessi, impariamo come modificarli! Utilizziamo il comando chmod per questo. Ci sono due modi per usare chmod: modalità simbolica e modalità assoluta.

Modalità simbolica

È come dare istruzioni per aggiungere o rimuovere permessi. Ecco la sintassi di base:

chmod [chi][+,-,=][permessi] nomefile
  • chi può essere u (utente), g (gruppo), o (altri) o a (tutti)
  • + aggiunge il permesso, - lo rimuove, = lo imposta esattamente
  • permessi sono r, w, o x

Per esempio:

chmod u+x myfile.txt

Questo aggiunge il permesso di esecuzione per l'utente.

Uso di chmod con permessi assoluti

La modalità assoluta utilizza numeri per impostare i permessi. Ogni permesso ha un valore:

  • r = 4
  • w = 2
  • x = 1

Somiamo questi valori per ciascuna categoria (utente, gruppo, altri). Ecco una tabella per aiutarti a comprendere:

Numero Permesso
0 ---
1 --x
2 -w-
3 -wx
4 r--
5 r-x
6 rw-
7 rwx

Per esempio:

chmod 755 myfile.txt

Questo imposta rwx per l'utente e rx per il gruppo e gli altri.

Modifica dei proprietari e dei gruppi

A volte, è necessario cambiare chi possiede un file o a quale gruppo appartiene. Vediamo come fare.

Modifica del proprietario

Per cambiare il proprietario di un file, utilizziamo il comando chown:

chown nuovo proprietario nomefile

Per esempio:

chown alice myfile.txt

Questo cambia il proprietario di myfile.txt a alice.

Modifica della proprietà del gruppo

Per cambiare il gruppo, utilizziamo il comando chgrp:

chgrp nuovo gruppo nomefile

Per esempio:

chgrp sviluppatori myfile.txt

Questo cambia il gruppo di myfile.txt a sviluppatori.

Permessi SUID e SGID

Ora parliamo di alcuni permessi speciali: SUID (Set User ID) e SGID (Set Group ID). Questi sono come superpoteri per i file!

  • SUID: Quando impostato su un file eseguibile, esegue con i permessi del proprietario.
  • SGID: Quando impostato su un file eseguibile, esegue con i permessi del gruppo.

Per impostare questi permessi, utilizziamo chmod con un numero speciale:

chmod 4755 myfile    # Imposta SUID
chmod 2755 myfile    # Imposta SGID

Il 4 all'inizio imposta SUID, e 2 imposta SGID.

Ecco fatto! Ora sei ben informato sul mondo dei permessi dei file in Unix/Linux. Ricorda, con grande potere viene grande responsabilità. Usa questi permessi saggiamente per mantenere i tuoi file sicuri e protetti.

La pratica fa la perfezione, quindi non aver paura di sperimentare (in un ambiente sicuro, naturalmente). Prima di sapere, sarai un esperto nella gestione dei permessi dei file!

Credits: Image by storyset