Ogni file in Linux ha tre parametri di "permessi":
· Utente proprietario (owner) del file
· Gruppo del proprietario
· Altri utenti
Per ogni parametro (ricordiamolo, sono tre), va impostato uno di questi valori:
0 = Nessun permesso | - |
1 = Esecuzione | (x) |
2 = Scrittura | (w) |
3 = Esecuzione + Scrittura | (xw) |
4 = Lettura | (r) |
5 = Lettura + Esecuzione | (rx , è la somma dei valori 1+4) |
6 = Lettura + Scrittura | (rw, 2+4) |
7 = Lettura + Scrittura + Esecuzione | (rwx, 1+2+4) |
Per cambiare il permesso ad un file (o ad una cartella) si usa il comando chmod, esempi:
chmod 777 -R cartella | In questo modo abbiamo impostato il permesso di lettura scrittura ed esecuzione ( 4+2+1 = 7 ) rispettivamente per proprietario, gruppo e utenti. La -R serve per applicare i permessi anche su tutte le sottocartelle e i files all'interno. |
chmod 644 ciccio | lettura e scrittura ( 4+2 = 6 ) per il proprietario e solo lettura ( 4 ) per gruppo e utenti. Equivalente a chmod u+w file |
chmod 400 file | Se vogliamo che possa accedere a un file in lettura solo il proprietario (passare quindi da -r--r--r-- a -r--------). Equivalente a chmod go-r file |
chmod 755 cartella | Così assegni permessi di lettura scrittura esecuzione al proprietario, lettura esecuzione al gruppo,lettura esecuzione agli altri. |
Per sapere i permessi dei file in una cartella, usando la shell piazzatevi dentro una cartella (usate il comando "cd" per muovervi fra le cartelle), e date il comando:
ls -l
Verranno elencati i file presenti nella cartella, ogni riga avrà un aspetto simile a questo:
drwxr-xr-x 5 root root 4096 2007-01-05 18:08 home
Come potete vedere, quella è la riga della cartella "home", la prima colonna è quella che ci interessa per sapere i permessi.
Il primo carattere (d) indica l'attributo, ("d" vuole dire directory), saltatelo.
I successivi nove caratteri sono i permessi, vanno letti a 3 a 3, ovvero: (rwx) (r-x) (r-x) quindi, in questo caso, è come dire "755" (proprietario, gruppo, altri).
La terza colonna e la quarta (root e root) indicano rispettivamente il "proprietario" e il "gruppo" del file.
Altri comandi utili ed importanti per file e cartelle:
cd | Il comando cd serve a spostarsi tra le directory. Ad esempio, facendo "cd /etc" ci si sposta nella directory "etc". "cd .." : serve invece a spostarsi nella cartella superione a quella in cui vi trovate. |
df -h | Visualizza lo spazio libero rimasto nelle partizioni. Oppure nel pannello "applicazioni-->accessori" di GNOME c'è un analizzatore dello spazio occupato. |
du -s /home | Restituisce la dimensione totale complessiva di una cartella, in questo caso la cartella "home". |
free | Memoria di sistema libera |
sudo gedit /etc/fstab | Vi mostra il file in cui vengono indicati i filesystem utilizzati e le directory ad essi associate. |
gksudo kdesu | Vedi "su" e "sudo". Se dovete avviare applicazioni grafiche con i privilegi di root (cioè dell'amministratore del sistema), se usate "sudo" potreste avere qualche problema. Usare invece gksudo per applicazioni Gnome e kdesu per quelle KDE in modo che carichi come root anche le librerie grafiche che servono a quei programmi. Utilizzo tipico: "gksudo nautilus". Facendo così si possono creare e modificare file in cartelle protette senza usare la shell. |
ls -a | ls serve per elencare il contenuto di una directory. L'opzione -a serve a vedere anche i file nascosti |
mv | Il comando mv serve per spostare, o rinominare, file e directory. |
rm -r nomecartella | Rimuove la cartella con il suo contenuto. Il comando rm viene usato anche per cancellare files. |
mkdir nomecartella | Crea una nuova cartella |
su | passare ad utente di root. Se la password non va reimpostala con "sudo passwd root" |
sudo | sudo (SUperuser DO) è un programma che consente di eseguire dei comandi con i privilegi di amministratore (sempre che vi sia abilitato). Facendo su si diventa a tutti gli effetti root. sudo invece assume i privilegi di root solo per un tempo limitato (15 minuti, di base). |
which | Mostra il percorso completo di un file |
Un'ultima cosa: un file o una cartella, per essere resa invisibile, bisogna semplicemente rinominarla con un puntino davanti. Ad esempio la cartella "prova", invisibile sarà ".prova".
In Windows, e quindi nei file systems FAT e NTFS, esiste un attributo "h" per rendere il file "invisibile". Qui su linux (file systems ext2, ext3 ecc..), non fuziona l'attributo "h" dal momento che per rendere invisibile file o cartelle si usa il sistema "puntino".
Il sistema dei permessi impostati mediante chmod NON funziona nei file system NTFS (quindi Windows), dove tutti i file sono di norma leggibili ed eseguibili da tutti.