Leggendo il post di Akel sul file system di linux, mi è venuto in mente questa cosa... Diciamo che l'articolo, per chi è un po che usa il Pinguino potrebbe essere scontato, ma per chi è appena sopraggiunto dal vecchio windows (winzoz) credo che siano informazioni utili, poichè i due sistemi adottano protezioni completamente diverse. Bando alle ciancie, iniziamo con le cose serie.
Nei vecchi windows, chi ha usato il versioni ormai storiche penso che mi capisca molto bene, l'utente era unico. Ora esso offre la possibilità di creare molti utenti, differenziandoli per i loro privilegi. Le protezioni ai file, sotto windows sono dati da 4 bit:
bit di SOLA LETTURA 1 = il file può essere solo letto
bit di ARCHIVIO 1 = è già stato fatto il backup del file
bit di NASCOSTO 1 = il file non è normalmente visibile
bit di SISTEMA 1 = il file è un file di sistema di windows
Questo insieme di bit è specificato per ogni file, nei suoi attributi. Non mi dilungherò qui su windows, mi sembra evidente che la protezione è un po' "spartana".
Per quanto riguarda Linux invece, esso già dalle prime versioni divide gli utente in 4 categorie, e i permessi su ogni file o directory sono strutturati in 10 caratteri.
Categorie di utenti in linux:
- AMMINISTRATORE (utente ROOT)
- PROPRIETARIO - CREATORE del file
- GRUPPO
- ALTRI
Il proprietario è logicamente l'utente che ha creato il file, esso deve poter controllare cosa può essere fatto sul file e da chi.
Il gruppo è il gruppo di utenti a cui appartiene l'utente creatore del file. Questo perchè, in una macchina multiutente, l'amministratore può creare più gruppi di utenti.
Il proprietario del file può appartenere a più gruppi, ma non a tutti contemporaneamente.
Gli altri sono TUTTI gli altri utenti che non fanno parte delle prime due categorie.
L'utente root è l'amministratore del sistema, ed ha permessi e privilegi su TUTTO.
Da una parte abbiamo diviso gli utenti, ora dividiamo le operazioni consentite. Esse sono essenzialmente 3
- READ (operazione di lettura)
- WRITE(operazione di scrittura)
- EXECUTE(operazione di esecuzione)
Quelli sono i 10 caratteri che identificano i permessi. Il primo identifica il TIPO di file
- se c'è un "-" allora è un file
- se c'è una "d" allora è una directory
- se c'è una "l" allora il file è un SOFT link
Gli altri 9 caratteri sono da considerarsi a TRIPLETTE. Ogni tripletta è formata dai permessi READ - WRITE - EXECUTE. Dove è presente la lettera corrispondente all'operazione significa operazione CONSENTITA. Dove è presente "-" NON è permesso eseguire quel tipo di operazione.
- La prima tripletta si riferisce all'utente CREATORE del file. Nel nostro caso, il creatore ha TUTTI i permessi abilitati ossia può leggere scrivere ed eseguire il file
- La seconda si riferisce al GRUPPO. Nel nostro esempio, il gruppo a cui appartiene l'utente creatore può solo leggere ed eseguire tale file
- La terza si riferisce agli ALTRI. TUTTI gli utenti al di fuori del creatore e del gruppo dell'utente creatore possono SOLO leggere il file.
Butto qua quindi due comandi, per chi è curioso di usarli può provarli dalla sua shell:
- chmod cambia i permessi di un singolo file
- umask imposta i permessi che i MIEI file ereditano al momento della creazione.....attenti, umask ragiona in logica NEGATA....
Nel campo utente usate:
- u per USER, ossia il creatore del file
- g per GROUP, ossia il gruppo
- o per OTHERS, ossia tutti gli altri
- a per ALL, ossia per TUTTE e 3 le precedenti categorie(opzione di default)
- + per aggiungere e - per togliere
Esempi:
chmod o-x pippo //per togliere i permessi dell'esecuzione di pippo dal gruppo ALTRI(other)
Il comando umask :
- usate il comando: umask -S per conoscere i permessi attuali che ereditano i miei file alla creazione.
- umask
per cambiarli.
ad esempio:
111 ==> 000 (perchè umask nega l'ingresso) ==> 0
011 ==> 100 ==> 4
000 ==> 111 ==> 7
quindi, se voglio impostare i permessi come nell'esempio a tutti i file che crereò da ora in poi digitare da terminale:
umask 047
così facendo a i file che creo, do' a me stesso tutti i permessi, do' i permessi di scrittura ed esecuzione al mio gruppo, e nessun permesso a tutti gli altri utenti.
Spero di essere stato chiaro negli esempi, se li proverete comunque scoprirete che non è così difficile.... per eventuali aiuti siamo a vostra disposizione.
Sto passando molto lentamente a Linux grazie alla facilità di uso di Ubuntu e adesso inizio la fase approfondimento.
RispondiEliminaGrazie delle piccole guide che inserisci in questo BLOG.
Daniele