
Se stai usando Linux da un po 'di tempo (e persino OS X) probabilmente avrai riscontrato un errore di “autorizzazioni”. Ma cosa sono esattamente e perché sono necessari o utili? Diamo un'occhiata all'interno.
Autorizzazioni utente
Ai tempi, i computer erano macchine enormi che erano incredibilmente costose. Per trarne il massimo vantaggio, sono stati collegati più terminali di computer che hanno consentito a molti utenti di svolgere le proprie attività contemporaneamente. L'elaborazione e l'archiviazione dei dati sono state eseguite sulla macchina, mentre i terminali stessi erano poco più che un mezzo per visualizzare e inserire i dati. Se ci pensate, è praticamente come accediamo ai dati sul “cloud”; guarda il sistema Amazon MP3 Cloud, Gmail e Dropbox e noterai che mentre le modifiche possono essere apportate localmente, tutto viene archiviato in remoto.

(Immagine: terminale “stupido” Zenith Z-19; credito: ajmexico)
Affinché ciò funzioni, i singoli utenti devono disporre di account. Devono disporre di una sezione dell'area di archiviazione assegnata e devono poter eseguire comandi e programmi. Ognuno ottiene specifiche “autorizzazioni utente”, che dettano ciò che possono e non possono fare, dove sul sistema fanno e non hanno accesso e i cui file possono e non possono modificare. Ogni utente viene inoltre inserito in vari gruppi, che concedono o limitano ulteriori accessi.
Accesso ai file

In questo stravagante mondo multiutente, abbiamo già stabilito dei limiti su ciò che gli utenti possono fare. Ma che dire di ciò a cui accedono? Bene, ogni file ha una serie di autorizzazioni e un proprietario. La designazione del proprietario, generalmente associata alla creazione del file, dichiara a quale utente appartiene e solo quell'utente può modificare le sue autorizzazioni di accesso.
Nel mondo di Linux, le autorizzazioni sono suddivise in tre categorie: lettura, scrittura ed esecuzione. L'accesso “lettura” consente di visualizzare il contenuto di un file, l'accesso “scrittura” consente di modificare il contenuto di un file e “esegui” consente di eseguire una serie di istruzioni, come uno script o un programma. Ognuna di queste categorie viene applicata a classi diverse: utente, gruppo e mondo. “Utente” indica il proprietario, “gruppo” indica qualsiasi utente appartenente allo stesso gruppo del proprietario e “mondo” indica chiunque e tutti.

Le cartelle possono anche essere limitate con queste autorizzazioni. Ad esempio, puoi consentire ad altre persone nel tuo gruppo di visualizzare directory e file nella tua cartella home, ma non chiunque al di fuori del tuo gruppo. Probabilmente vorrai limitare l'accesso in “scrittura” solo a te stesso, a meno che tu non stia lavorando a un progetto condiviso di qualche tipo. Puoi anche creare una directory condivisa che consenta a chiunque di visualizzare e modificare i file in quella cartella.
Modifica delle autorizzazioni in Ubuntu
GUI
Per modificare le autorizzazioni di un file che possiedi in Ubuntu, fai semplicemente clic con il pulsante destro del mouse sul file e vai su “Proprietà”.

È possibile modificare la possibilità di leggere e scrivere il proprietario, il gruppo o altri, di sola lettura o di non fare nulla. Puoi anche selezionare una casella per consentire l'esecuzione del file e questo lo abiliterà contemporaneamente per il proprietario, il gruppo e altri.
Riga di comando
Puoi anche farlo tramite la riga di comando. Vai a una directory che contiene file e digita il seguente comando per visualizzare tutti i file in un elenco:
ls -al

Accanto a ogni file e directory, vedrai una sezione speciale che delinea le autorizzazioni che ha. Sembra così:
-rwxrw-r-
Il r sta per “leggere”, il w sta per “scrivere” e il X sta per “esegui”. Le directory inizieranno con una “d” anziché un “-“. Noterai anche che ci sono 10 spazi che contengono valore. Puoi ignorare il primo, e poi ci sono 3 set di 3. Il primo set è per il proprietario, il secondo set è per il gruppo e l'ultimo set è per il mondo.
Per modificare le autorizzazioni di un file o di una directory, diamo un'occhiata al modulo di base del comando chmod.
file chmod (classe) (operatore) (autorizzazione)
file chmod (ugoa) (+ o -) (rwx)
All'inizio questo può sembrare complicato, ma credetemi, è abbastanza facile. Innanzitutto, diamo un'occhiata alle lezioni:
- u: Questo è per il proprietario.
- g: Questo è per il gruppo.
- o: Questo è per tutti gli altri.
- a: Questo cambierà le autorizzazioni per tutto quanto sopra.
Successivamente, gli operatori:
- +: Il segno più aggiungerà le autorizzazioni che seguono.
- -: il segno meno rimuoverà le autorizzazioni che seguono.
Ancora con me? E l'ultima sezione è la stessa di quando abbiamo controllato le autorizzazioni di un file:
- r: consente l'accesso in lettura.
- w: consente l'accesso in scrittura.
- x: consente l'esecuzione.
Ora mettiamolo insieme. Supponiamo di avere un file chiamato “todo.txt” che ha le seguenti autorizzazioni:
-rw-rw-r-
Cioè, il proprietario e il gruppo possono leggere e scrivere e il mondo può solo leggere. Vogliamo cambiare le autorizzazioni per questi:
-rwxr–
Cioè, il proprietario ha autorizzazioni complete e il gruppo può leggere. Possiamo farlo in 3 passaggi. Innanzitutto, aggiungeremo l'autorizzazione di esecuzione per l'utente.
chmod u + x todo.txt
Quindi rimuoveremo l'autorizzazione di scrittura per il gruppo.
chmod g-w todo.txt
Infine, rimuoveremo le autorizzazioni di lettura per tutti gli altri utenti.
chmod o-r todo.txt
Possiamo anche combinarli in un unico comando, in questo modo:
chmod u + x, g-w, o-r todo.txt

Puoi vedere che ogni sezione è separata da virgole e non ci sono spazi.
Ecco alcune autorizzazioni utili:
- -rwxr-xr-x: il proprietario dispone delle autorizzazioni complete, il gruppo e altri utenti possono leggere il contenuto del file ed eseguirlo.
- -rwxr – r–: il proprietario dispone delle autorizzazioni complete, il gruppo e altri utenti possono leggere il file (utile se non ti dispiace che gli altri visualizzino i tuoi file.
- -rwx——: il proprietario ha i permessi completi, tutti gli altri non ne hanno (utile per gli script personali).
- -rw-rw—-: il proprietario e il gruppo possono leggere e scrivere (utile per la collaborazione con i membri del gruppo).
- -rw-r – r–: il proprietario può leggere e scrivere, il gruppo e altri utenti possono solo leggere file (utile per archiviare file personali su una rete condivisa).
- -rw ——-: il proprietario può leggere e scrivere, tutti gli altri non ne hanno (utile per la memorizzazione di file personali).
Ci sono alcune altre cose che puoi fare con chmod – come setuid e setgid – ma sono un po 'approfondite e la maggior parte degli utenti non dovrà davvero usarle comunque.
I file root o superutente e di sistema

Al giorno d'oggi, non eseguiamo sempre sistemi con più utenti. Perché dovremmo ancora preoccuparci delle autorizzazioni?
Bene, Unix e i suoi derivati - Linux, OS X, tra gli altri – distinguono anche tra cose gestite dall'utente, cose gestite da un amministratore o con privilegi di amministratore e cose gestite dal sistema stesso. Pertanto, le cose che sono parte integrante del sistema necessitano di privilegi di amministratore per essere modificate o accessibili. In questo modo, non sbagli nulla per caso.
In Ubuntu, per apportare modifiche ai file di sistema, utilizzare “sudo” o “gksudo” per ottenere l'equivalente dei privilegi di amministratore. In altre distro, si passa a “root” o al “superutente” che fa effettivamente la stessa cosa fino al logout.
Tenere presente che in entrambe queste circostanze, la modifica delle autorizzazioni dei file può comportare il mancato funzionamento dei programmi, la modifica involontaria della proprietà dei file all'utente root (anziché il proprietario) e la riduzione della sicurezza del sistema (concedendo più autorizzazioni). Pertanto, si consiglia di non modificare le autorizzazioni per i file, in particolare i file di sistema, a meno che non sia necessario o non si sappia cosa si sta facendo.
Sono disponibili autorizzazioni per i file per fornire un sistema di base di sicurezza tra gli utenti. Imparare come funzionano può aiutarti a impostare la condivisione di base in un ambiente multiutente, proteggere i file “pubblici” e darti un'idea di quando qualcosa non va nella proprietà dei file di sistema.
Pensi di poter spiegare le cose più facilmente? Hai una correzione? Vuoi ricordare i vecchi tempi? Fai una pausa e metti i tuoi pensieri nei commenti.
