Cerca nel blog

mercoledì 7 luglio 2010

Permessi in Linux

Linux, adotta un file system ad albero gerarchico, quindi per far riferimento ad un file o una directory non basta specificare
solo il nome del file o della direcory ma bisogna specificare tutto il percorso dalla root(il Linux indicata con "/") fino al file o directory desiderata in modo da attraversare l'albero
dalla radice al nodo desiderato.
Questa struttura ad albero può crescere creando nuove directory.
I file possono avere un nome costituito da caratteri alfabetici, di sottolineatura o numerici, possono includere punti e virgola. Tuttavia il nome di un file non può iniziare con un punto se non in casi particolari. La lunghezza massima di un nome può essere di 256 caratteri.




Elenchiamo adesso alcuni comandi utili per i files:
ComandoDescrizioneEsempio
catUtile per visualizzare il contenuto di un file a video.Si possono avere problemi nel visualizzare tutto il file visto che l'output scorre veloce sulla shell.cat info.txt
moreQuesto comando è stato realizzato per eliminare i problemi del comando cat. Infatti more permette di navigare l'output del file visualizzato sulla shell. Infatti il comando more visualizza l'output poco alla volta e per andare avanti nella visualizzazione basta premere la BARRA SPAZIATRICE per rileggere parti del file già visualizzare sulla shell bisogna digitare il tasto "b", metre per uscire dalla visualizzazione premere il tasto "Q".more info.txt
lprPermette di mandare in stampa un file sulla stampante connessa al sistema.lpr info.txt
lpqVisualizza tutti gli job di stampa con i relativi proprietari le dimensioni in byte e il file temporaneo cui fa riferimento il job di stampa.lpq
lprmAnnulla un jod di stampa. Il comando lprm accetta come argomento l'identificativo del jod da annullare oppure il nome del proprietario.lprm 00045
oppure
lprm joaquin
mkdirPermette di creare una nuova directory. Accetta come argomento il percorso di una directory.mkdir prova
rmdirQuesto comando permette di eliminare una directory. Accetta come argomento il percorso di una directory.rmdir prova
cdPermette di cambiare la directory di lavoro. Accetta come argomento il percorso di una directory.cd ..
mvPermette di rinominare o spostare un file. Accetta come argomento il percorso di un file.mv prova.txt pippo.txt
rmPermette di cancellare un file. Accetta come argomento il percorso di un file.rm pippo.txt
lnPermette di creare un collegamento(link) ad un file. Accetta come parametro il percorso di un file e il file di link.ln pippo.txt link.txt
pwdVisualizza il percorso assoluto della directory di lavoro.pwd
findEsegue la ricerca di un file. Accetta un elenco delle directory dove ricercare il file e delle opzioni come -name che specifica il nome del file da cercare.find -name pippo.txt
N.B.:Ognuno dei comandi elencati ha delle opzioni che possono essere utilizzate. Utilizzare il comando man per un elenco delle opzioni di ogni comando.

In Linux ad ogni file e directory è associata una serie di permessi che garantiscono la modalità di accesso.
È possibile gestire la modalità di accesso a se stessi cioè al proprietario del file, ai membri di un gruppo oppure a tutti gli utenti  del sistema.
Quindi per file e directory è possibile definire permessi in scrittura, lettura ed esecuzione per il proprietario del file, per il gruppo e per tutti gli utenti del sistema.
Alla creazione di un file vengono automaticamente assegnato i permessi in lettura e scrittura per il proprietario.
In Linux si possono distinguere tre categorie di utenti:
il proprietario, il gruppo, gli "altri". Per ognuna di queste categorie si possono impostare permessi di lettura, scrittura ed esecuzione distinti che controllano l'accesso da parte del proprietario, del gruppo di lavoro e tutti gli altri utenti del sistema.
Vediamo ora come impostare i permessi per ognuna delle tre categorie.
Allora abbiamo come già detto permessi in lettura, scrittura ed eecuzione per ognuna delle tre categorie individuate da Linux, quindi per un totale di nove permessi da impostare.


Prima di dire come impostare i permessi vediamo prima come leggere i permessi di un file.


Come si può vedere dall'immagine il primo carattere di ogni riga relativa ai file è "-" questo significa che è un file comune se invece il primo carattere è una "d" significa che la riga fa riferimento ai permessi di una directory.
Il carattere "-" non è utilizzato solo come indicatore di file comune, ma se è presente in una posizione che non sia la prima indica che la rispettiva categoria non ha il relativo permesso sul file o sulla directory.
Per indicare che una categoria ha il permesso in lettura viene visualizzato nella giusta pisizione il carattere "r", per il permesso di scrittura nella giusta posizione è visualizzata la lettere "w" mentre per il permesso di esecuzione viene visualizzata la lettera "x".
Dall'immagine si può osservare che il proprietario dei file ha tutti i tre i permessi infatti i permessi per il proprietario sono i primi tre caratteri immediatamente subito dopo quello che indica se il file è una directory o un file comune. Le tre successive posizioni indicano i permessi che il gruppo di lavoro
ha sul file o directory. Infine le ultime tre posizioni indicano i permessi che tutti gli altri utenti del sistema hanno sul file o sulla directory.

Se si guarda l'immagine e si localizza la linea che indica il secondo file si può notare che si tratta di un file comune(il primo carattere è "-") si nota che il proprietario ha i permessi in lettura scrittura ed esecuzione ( sono presenti i caratteri di "rwx") i permessi per il gruppo di lavoro
sono lettura ed esecuzione (infatti la sequenza dei caratteri è "r-x"), mentre tutti gli altri utenti del sistema hanno il permesso in lettura, scrittuara ed esecuzione (la sequenza dei caratteri è "rwx"). La linea che individua il terzo file ha una sola differenza dai permessi indicati per il secondo file e cioè tutti gli altri utenti del sistema hanno il solo permesso in lettura infatti
la sequenza dei caratteri è "r--".
Quindi la stuttura dei permessi è del seguente tipo
12345678910
"-" or "d""-" or "r""-" or "w""-" or "x""-" or "r""-" or "w""-" or "x""-" or "r""-" or "w""-" or "x"

La posizione 1 può avere il carettere "-" o "d" rispettivamente se il file è un file comune o una directory.
Le posizioni 2 3 e 4 indicano rispettivamente il permesso in lettura scrittura o esecuzione per il proprietario del file.Le posizioni 5 6 e 7 indicano rispettivamente il permesso in lettura scrittura o esecuzione per il gruppo di lavoro. Le posizioni 8 9 e 10 indicano rispettivamente il permesso in lettura scrittura o esecuzione per gli "altri" utenti del sistema.
Per cambiare la configurazione dei permessi si deve utilizzare il comando chmod. Tale comando accetta come argomenti due elenchi un elenco per la configurazione dei permessi ed un elenco di nomi dei file.
L'elenco dei permessi può essere specificato utilizzando un metodo simbolico che utilizza le lettere "r", "w" e "x" oppure utilizzare una maschera binaria.
Un esempio può essere: chmod +x-w pippo.txt il comando precedente aggiunge il permesso in esecuzione e toglie il permesso in scrittura.
Il metodo della maschera binaria invece per configurare i parametri utilizza una sequenza di tre numeri in formato ottale per specificare i permessi per ognuna delle tre categorie. Ogni numero ottale corrisponde ad un numero binario di tre cifre. Un numero binario quindi è composto da una sequenza di 1 e 0 per un numero massimo di tre ed ogni cifra può essere 0 oppure 1 rispettivamente se il permesso si vuole concedere oppure no. Quindi se voglio che un file sia leggibile modificabile ed eseguibile per il proprietario e solo in lettura per il gruppo e per gli altri utenti del sistema la sequenza binaria sarebbe: 111(permessi proprietario)100(permessi gruppo)100(permessi altri) trasformando le sequenze di tre cifre binarie in ottale si ha 744 quindi il comando chmod sarà chmod 744 pippo.txt.

Nessun commento:

Posta un commento