Gestione dei permessi e utenti su Linux
Nel sistema Unix/Linux, la gestione dei permessi di file e directory è cruciale per mantenere la sicurezza e l'efficienza del sistema. I permessi determinano chi può accedere e modificare file e directory e in che modo. Questo articolo offre una panoramica dei permessi in Unix/Linux, esplorando i concetti fondamentali, la loro struttura e i metodi per modificarli. Inoltre, discuterà i permessi speciali che offrono ulteriore controllo su file e directory.
1. Concetti Fondamentali dei Permessi
In Unix e Linux, ogni file e directory è associato a tre tipi principali di permessi: lettura (r), scrittura (w) e esecuzione (x). Questi permessi definiscono le operazioni che possono essere effettuate su un file o una directory e sono suddivisi tra tre categorie di utenti: il proprietario, il gruppo e tutti gli altri utenti.
- Lettura (r): Consente di visualizzare il contenuto di un file o di elencare i contenuti di una directory. Senza questo permesso, un utente non può vedere cosa c'è all'interno di una directory o leggere il contenuto di un file.
- Scrittura (w): Permette di modificare il contenuto di un file o di aggiungere/rimuovere file in una directory. Se un utente non ha il permesso di scrittura su un file, non potrà modificarne il contenuto, e se non ha il permesso su una directory, non potrà aggiungere o eliminare file al suo interno.
- Esecuzione (x): Consente di eseguire un file come programma o accedere a una directory. Senza questo permesso, anche se un file è leggibile, non sarà possibile eseguirlo, e senza il permesso su una directory, non si potrà navigare all'interno di essa.
Codice: Seleziona tutto
ls -l script.sh
Codice: Seleziona tutto
-rwxr-xr--
2. Struttura dei Permessi
I permessi sono visualizzati attraverso il comando
Codice: Seleziona tutto
ls -l
- Il primo carattere indica il tipo di file: per un file normale,
Codice: Seleziona tutto
-
per una directory e altri caratteri per file speciali come i link simbolici.Codice: Seleziona tutto
d
- I successivi tre caratteri rappresentano i permessi del proprietario del file: lettura, scrittura e esecuzione, ad esempio significa che il proprietario può leggere, scrivere ed eseguire il file.
Codice: Seleziona tutto
rwx
- I tre caratteri successivi mostrano i permessi per il gruppo associato al file. Se il gruppo ha solo permessi di lettura ed esecuzione, appariranno come .
Codice: Seleziona tutto
r-x
- Gli ultimi tre caratteri mostrano i permessi per gli altri utenti. Ad esempio, significa che solo il permesso di lettura è concesso agli utenti esterni.
Codice: Seleziona tutto
r--
Codice: Seleziona tutto
ls -ld data
Codice: Seleziona tutto
drwxr-xr-x
Codice: Seleziona tutto
d
3. Modifica dei Permessi
La modifica dei permessi avviene attraverso il comando
Codice: Seleziona tutto
chmod
Modo Simbolico
Il modo simbolico utilizza lettere per rappresentare i permessi e gli utenti:
- u per il proprietario (user)
- g per il gruppo (group)
- o per gli altri (others)
- a per tutti (all)
Codice: Seleziona tutto
+
Codice: Seleziona tutto
-
Codice: Seleziona tutto
=
Codice: Seleziona tutto
chmod u+x file.txt
Codice: Seleziona tutto
chmod o-w file.txt
Esempio: Se desideriamo concedere al gruppo il permesso di scrittura su un file chiamato documento.txt, utilizziamo:
Codice: Seleziona tutto
chmod g+w documento.txt
Codice: Seleziona tutto
chmod o-w documento.txt
Il modo numerico utilizza una combinazione di numeri per rappresentare i permessi. Ogni permesso ha un valore numerico (lettura=4, scrittura=2, esecuzione=1). La somma di questi valori per il proprietario, il gruppo e gli altri utenti crea un numero a tre cifre. Ad esempio,
Codice: Seleziona tutto
chmod 754 file.txt
Codice: Seleziona tutto
rwxr-xr--
Esempio: Per impostare i permessi a
Codice: Seleziona tutto
rwxr--r--
Codice: Seleziona tutto
chmod 744 file.txt
I permessi speciali in Unix/Linux offrono un ulteriore livello di controllo sui file e le directory:
- Setuid (s): Quando impostato su un file eseguibile, il file viene eseguito con i permessi del proprietario del file, non con i permessi dell'utente che lo esegue. Questo è utile per programmi che necessitano di privilegi elevati.
- Setgid (s): Quando impostato su una directory, i file creati all'interno della directory avranno il gruppo della directory come gruppo del file. Se impostato su un file eseguibile, funziona in modo simile al setuid.
- Sticky bit (t): Quando impostato su una directory, solo il proprietario dei file e l'utente root possono eliminare o rinominare i file all'interno della directory. Questo è spesso usato su directory temporanee come .
Codice: Seleziona tutto
/tmp
Codice: Seleziona tutto
chmod u+s program
Codice: Seleziona tutto
chmod +t uploads
La gestione dei permessi in Unix e Linux è una componente cruciale dell'amministrazione del sistema. Comprendere come leggere e modificare i permessi aiuta a proteggere i dati e garantire che solo gli utenti autorizzati possano accedere o modificare file e directory. Utilizzare i permessi speciali in modo appropriato può offrire ulteriore controllo e sicurezza. Con una solida conoscenza dei permessi, è possibile mantenere un ambiente di lavoro sicuro e ben organizzato.
Esempio di sintesi: Dopo aver appreso i permessi e i comandi, supponiamo di voler rendere un file chiamato script.sh leggibile ed eseguibile solo dal proprietario e dal gruppo, ma non dagli altri utenti. Utilizzeremmo:
Codice: Seleziona tutto
chmod 750 script.sh