Guida per principianti a GNU/Linux: i permessi (prima parte)

Avatar utente
Etabeta
Messaggi: 945

Guida per principianti a GNU/Linux: i permessi (prima parte)

Messaggio #1 »

domenica, 1. gennaio 2012, 17:24

Guida per principianti a GNU/Linux: i permessi (prima parte)

Eccoci arrivati ad uno degli argomenti più ostici per i gnubie (gioco di parole tra GNU e newbie). La maggioranza dei neo-utenti di GNU/Linux proviene da Windows XP (o Vista) in versione Home. A ragione, non ha mai sentito parlare di permessi, utenti, gruppi, ecc. e perciò si trova completamente spaesata di fronte al fatto che certi file non possono essere modificati o che il sistema si rifiuti di eseguire determinate operazioni.
Chi invece viene da Windows XP o 2000 Professional (magari perché lo ha trovato installato sul PC aziendale) sa che a volte esso si rifiuta di installare WOW. Un bel fastidio. E’ un po’ difficile spiegare all’amministratore della stuttura IT della propria azienda che WOW vi serve per motivi di lavoro.
Ma partiamo dal principio. Quando usate GNU/Linux dovete pensare a Unix e quando pensate a Unix dovete immaginarvi due cose: la compagnia dei telefoni americana AT&T e le Università (Berkeley e MIT in particolare). Di cosa ha bisogno una grande azienda o un’Università? Di un sistema operativo che gestisca grandi computer ai quali collegarsi in remoto tramite terminali. Computer a cui insomma accedono in contemporanea decine, centinaia o addirittura migliaia di persone, ognuna delle quali ha bisogno di un poco di spazio su disco e un po’ di tempo della CPU.

Se doveste fare un sistema del genere vorreste evitare che l’utente Pippo si metta a modificare i file dell’utente Pluto. Sarebbe poco simpatico, soprattutto se l’utente Pluto è il segretario che mantiene i registri dei voti degli studenti e l’utente Pippo è invece uno studente svogliato che vuole migliorare la sua media.
Inoltre vorreste evitare che sia l’utente Pippo che l’utente Pluto possano smanettare con il sistema, rimuovendo o installando programmi, oppure modificando file vitali.
Ancora, vorreste anche stabilire che certi utenti potessero fare certe cose e altri no, suddividendo l’insieme di tutti gli utenti in gruppi. Ad esempio un gruppo può accedere a certi file (i segretari dell’Università) che altri gruppi non devono poter modificare ma solo leggere (ad esempio gli studenti di suddetta Università). Vorreste anche fare in modo che un utente possa far parte di più di un gruppo, perché può ad esempio capitare che uno studente venga temporaneamente impiegato dall’Università come segretario.

Infine, vorreste che un solo utente, l’Amministratore del Sistema, abbia accesso incondizionato a tutto, perché altrimenti non riuscirebbe ad amministrarlo questo benedetto sistema.
Ecco quindi spiegato perché GNU/Linux, che è un clone di Unix, gestisce la multiutenza, il multitasking e permette di creare gruppi di utenti con determinati privilegi. Ed anche perché esiste un utente (root) che può fare tutto.

Be’, intanto non è detto che tu rimanga per sempre l’unico utente. Magari tua sorella vuole usare il pc e non sarebbe bello che potesse accedere ai tuoi pornazzi nella cartella “xxx” che hai appositamente creato. Ma anche se non hai sorelle impiccione, la suddivisione in utenze e i permessi sono una misura molto efficace contro il malware, come ho già spiegato. Un piccolo fastidio, ma con molti vantaggi.

Fatta questa premessa, vediamo come funziona il tutto in pratica.

Abbiamo gli utenti che, come già detto, dispongono di una loro cartella dentro /home. La cartella ha il nome dell’utente stesso e ogni utente può fare parte di uno o più gruppi, esiste anche un utente chiamato root (o anche super user o amministratore) che può compiere qualsiasi azione, “incurante" dei permessi

Ogni file (ed ogni directory) rispecchia questa suddivisione:

ogni file ha un proprietario (che è sempre uno degli utenti del sistema) il quale ha certi permessi
il file dovrà contenere l’informazione sui permessi del gruppo (a cui il proprietario appartiene)
infine il file dovrà contenere l’informazione su cosa possono fare gli altri utenti, quelli che non sono né il proprietario, né utenti appartenti al gruppo di cui fa parte anche il proprietario; l’utente root invece può fare sempre ciò che gli pare.
Infine, vediamo quali sono le operazioni che si possono compiere su un file:

leggerlo
scriverlo (che comprende anche modificarlo o cancellarlo)
eseguirlo (nel caso sia un file eseguibile, come un programma)


Se tutto ciò è chiaro, allora è facile capire questo:

Citato:
"-rwxrw-r-- 1 guido guido 985 2008-08-12 00:39 pippo.sh,,


E’ il risultato del comando ls -l pippo* che equivale a dire “dammi la lista di tutti i file che iniziano con ‘pippo’ (pippo*) e dammi i particolari (opzione -l)”.

Analizziamo i particolari. Vediamo la sequenza di lettere drwxrwxrwx. Ecco la spiegazione:

indica che si tratta di una file normale; se fosse stato una directory avremmo letto “d”, se fosse stato il link ad un altro file avremmo letto “l”
la prima tripletta rwx indica i permessi dell’utente proprietario: l’utente può leggere (r=read), scrivere (w=write) ed eseguire il file (x=execute)
la seconda tripletta rw- indica i permessi del gruppo; gli utenti di tale gruppo possono anch’essi leggere e scrivere il file, ma non eseguirlo (manca la x)
infine la terza tripletta r– indica i permessi degli altri utenti: essi possono solo leggere il file.
Andiamo avanti. Il numero 1 indica che il file è linkato solo una volta nel filesystem (quindi solo da se stesso).

Il primo nome guido indica il proprietario del file (cioè io). Il secondo nome guido indica il gruppo di appartenenza del file (il gruppo si chiama come l’utente, ma poteva anche essere diverso). Infine è indicata la dimensione del file in byte e la data e ora di ultima modifica. ;)

Crescia
Etabeta