Permessi... ne avrete sicuramente sentito parlare.. vediamo qui di inquadrare cosa sono e come modificarli...
Se listate il contenuto di una cartella con ls -l vedrete comparire, per ogni file e cartella, una riga criptica formata da lettere e trattini. Di cosa si tratta ?? Sono i permessi relativi al file o cartella che rappresentano i diritti di accesso allo stesso. Questo perche' i sistemi .nix sono sistemi multi-utenza.
Esempio:
nesquik@turing:~/dati/shell script> ls -l
totale 24
-rwxr--r-- 1 nesquik users 1909 2005-02-22 13:45 colori.sh
-rwxr--r-- 1 nesquik users 758 2005-03-05 14:39 programmitv.sh
-rwxr--r-- 1 nesquik users 784 2004-04-09 16:25 shots.sh
-rwxr--r-- 1 nesquik users 131 2005-03-05 14:21 statodischi.sh
-rwxr--r-- 1 nesquik users 49 2004-08-20 16:16 tar_xfv_tuttitar.sh
-rwxr--r-- 1 nesquik users 50 2004-08-30 23:39 unzip_tuttizip.sh
nesquik@turing:~/dati/shell script>
La riga in questione e' formata da 10 elementi; fatta eccezione per il primo a sx (che chiamiamo elemento 0) gli altri nove (da sx a dx) viaggiano a gruppi di tre elementi.
L'elemento 0 indica la categoria dell'elemento.
Questo puo' essere:
d = directory
- = file
l = link (collegamento simbolico)
b, c = file speciale (non entriamo in merito)
Gli elementi 123 indicano i permessi dell'utente sull'elemento, che chiamiamo u (user)
Gli elementi 456 indicano i permessi del gruppo sull'elemento, che chiamiamo g (group)
Gli elementi 789 indicano i permessi di tutti gli altri sull'elemento, che chiamiamo o (others)
I permessi di utente (u), gruppo (g) e altri (o) possono essere:
r = read (permesso di lettura)
w = write (permesso di scrittura)
x = execute (permesso di esecuzione)
- = nessun permesso
Prendiamo quindi in esempio uno dei file riportati sopra dall'output di ls:
-rwxr--r-- 1 nesquik users 131 2005-03-05 14:21 statodischi.sh
Analizzando la riga dei permessi capiamo che:
a) si tratta di un file (l'elemento 0 e' un trattino)
b)l'utente proprietario (nesquik) ha diritto di lettura/scrittura/esecuzione sul file (l'elemento u e' rwx)
c) il gruppo (users) e gli altri hanno solo diritto di lettura (sia l'elemento g che o sono r--)
I permessi di un file o cartella sono modificabili, ma e' solamente l'amministratore di sistema a potervi mettere mano. Loggatevi quindi come root attraverso il comando su se volete fare delle prove. Lo strumento che ci viene in aiuto in questo caso si chiama chmod.
Attraverso questo comando si possono dare (+) i permessi di lettura (r), scrittura (w) ed esecuzione (x) oppure toglierli (-): ad esempio,
+x da permesso di esecuzione
-wx toglie i permessi di scrittura ed esecuzione
+r da permesso di lettura
Ora bisogna pero' indicare se i permessi sono riferiti all'utente, al gruppo o ad altri. Il comando chmod consente due vie per affrontare la questione, una in forma di operatori e una in forma di cifre.
In forma di operatori si procede cosi': si associa l'appartenenza a degli operatori simboli quali u (utente), g (gruppo) oppure o (altri). Un chmod completo, quindi, per passare da
-r--r--r-- a -rw-r--r-- puo' essere:
chmod u+w file
che da' il permesso di scrittura all'utente
ancora, da -r--r--r-- a -r--------
chmod go-r file
toglie il permesso di lettura a tutti tranne che all'utente
Infine, se vogliamo modificare i permessi di tutti quanti possiamo usare l'operatore "ugo" (user,group,others) oppure "a" (all) oppure non esplicitare nulla.
La seconda strada, come detto, e' quella in forma di cifre, piu' complessa ma per molti piu' sbrigativa (e' solo questione di farci abitudine).
Secondo tale metodo viene assegnato il valore 1 al permesso di esecuzione, 2 a quello di scrittura, 4 a quello di lettura e 0 nessun permesso; la somma di questi valori ci da' il permesso risultante per l'utente, il gruppo o gli altri. Esplicitando tutte le casistiche:
0 nessun permesso (---)
1 permesso in esecuzione (--x)
2 permesso in scrittura (-w-)
3 permesso in scrittura ed esecuzione (-wx) (2+1)
4 permesso in lettura (r--)
5 permesso in lettura ed esecuzione (r-x) (4+1)
6 permesso in lettura e scrittura (rw-) (4+2)
7 permesso in lettura, scrittura ed esecuzione (rwx) (4+2+1)
Nell'esecuzione di chmod dovremo riportare i permessi che vogliamo assegnare utilizzando tre cifre (la prima per l'utente, la seconda per il gruppo, la terza per tutti gli altri) secondo la modalita' vista prima.
I chmod visti sopra, quindi, equivalgono a quelli che seguono:
chmod 644 file e chmod 400 file
Per ora e' tutto.
Have fun
Se listate il contenuto di una cartella con ls -l vedrete comparire, per ogni file e cartella, una riga criptica formata da lettere e trattini. Di cosa si tratta ?? Sono i permessi relativi al file o cartella che rappresentano i diritti di accesso allo stesso. Questo perche' i sistemi .nix sono sistemi multi-utenza.
Esempio:
nesquik@turing:~/dati/shell script> ls -l
totale 24
-rwxr--r-- 1 nesquik users 1909 2005-02-22 13:45 colori.sh
-rwxr--r-- 1 nesquik users 758 2005-03-05 14:39 programmitv.sh
-rwxr--r-- 1 nesquik users 784 2004-04-09 16:25 shots.sh
-rwxr--r-- 1 nesquik users 131 2005-03-05 14:21 statodischi.sh
-rwxr--r-- 1 nesquik users 49 2004-08-20 16:16 tar_xfv_tuttitar.sh
-rwxr--r-- 1 nesquik users 50 2004-08-30 23:39 unzip_tuttizip.sh
nesquik@turing:~/dati/shell script>
La riga in questione e' formata da 10 elementi; fatta eccezione per il primo a sx (che chiamiamo elemento 0) gli altri nove (da sx a dx) viaggiano a gruppi di tre elementi.
L'elemento 0 indica la categoria dell'elemento.
Questo puo' essere:
d = directory
- = file
l = link (collegamento simbolico)
b, c = file speciale (non entriamo in merito)
Gli elementi 123 indicano i permessi dell'utente sull'elemento, che chiamiamo u (user)
Gli elementi 456 indicano i permessi del gruppo sull'elemento, che chiamiamo g (group)
Gli elementi 789 indicano i permessi di tutti gli altri sull'elemento, che chiamiamo o (others)
I permessi di utente (u), gruppo (g) e altri (o) possono essere:
r = read (permesso di lettura)
w = write (permesso di scrittura)
x = execute (permesso di esecuzione)
- = nessun permesso
Prendiamo quindi in esempio uno dei file riportati sopra dall'output di ls:
-rwxr--r-- 1 nesquik users 131 2005-03-05 14:21 statodischi.sh
Analizzando la riga dei permessi capiamo che:
a) si tratta di un file (l'elemento 0 e' un trattino)
b)l'utente proprietario (nesquik) ha diritto di lettura/scrittura/esecuzione sul file (l'elemento u e' rwx)
c) il gruppo (users) e gli altri hanno solo diritto di lettura (sia l'elemento g che o sono r--)
I permessi di un file o cartella sono modificabili, ma e' solamente l'amministratore di sistema a potervi mettere mano. Loggatevi quindi come root attraverso il comando su se volete fare delle prove. Lo strumento che ci viene in aiuto in questo caso si chiama chmod.
Attraverso questo comando si possono dare (+) i permessi di lettura (r), scrittura (w) ed esecuzione (x) oppure toglierli (-): ad esempio,
+x da permesso di esecuzione
-wx toglie i permessi di scrittura ed esecuzione
+r da permesso di lettura
Ora bisogna pero' indicare se i permessi sono riferiti all'utente, al gruppo o ad altri. Il comando chmod consente due vie per affrontare la questione, una in forma di operatori e una in forma di cifre.
In forma di operatori si procede cosi': si associa l'appartenenza a degli operatori simboli quali u (utente), g (gruppo) oppure o (altri). Un chmod completo, quindi, per passare da
-r--r--r-- a -rw-r--r-- puo' essere:
chmod u+w file
che da' il permesso di scrittura all'utente
ancora, da -r--r--r-- a -r--------
chmod go-r file
toglie il permesso di lettura a tutti tranne che all'utente
Infine, se vogliamo modificare i permessi di tutti quanti possiamo usare l'operatore "ugo" (user,group,others) oppure "a" (all) oppure non esplicitare nulla.
La seconda strada, come detto, e' quella in forma di cifre, piu' complessa ma per molti piu' sbrigativa (e' solo questione di farci abitudine).
Secondo tale metodo viene assegnato il valore 1 al permesso di esecuzione, 2 a quello di scrittura, 4 a quello di lettura e 0 nessun permesso; la somma di questi valori ci da' il permesso risultante per l'utente, il gruppo o gli altri. Esplicitando tutte le casistiche:
0 nessun permesso (---)
1 permesso in esecuzione (--x)
2 permesso in scrittura (-w-)
3 permesso in scrittura ed esecuzione (-wx) (2+1)
4 permesso in lettura (r--)
5 permesso in lettura ed esecuzione (r-x) (4+1)
6 permesso in lettura e scrittura (rw-) (4+2)
7 permesso in lettura, scrittura ed esecuzione (rwx) (4+2+1)
Nell'esecuzione di chmod dovremo riportare i permessi che vogliamo assegnare utilizzando tre cifre (la prima per l'utente, la seconda per il gruppo, la terza per tutti gli altri) secondo la modalita' vista prima.
I chmod visti sopra, quindi, equivalgono a quelli che seguono:
chmod 644 file e chmod 400 file
Per ora e' tutto.
Have fun