Filesystem: i permessi sui files

Da Guide@Debianizzati.Org.
Versione del 19 apr 2009 alle 13:31 di Ferdybassi (discussione | contributi) (Nuova pagina: ==Impostare o modificare i permessi su files e directory== ===Modificare il proprietario o il gruppo di un file=== In ambito Unix e Gnu/Linux, quando un file viene creato esso appartie...)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Vai alla navigazione Vai alla ricerca

Impostare o modificare i permessi su files e directory

Modificare il proprietario o il gruppo di un file

In ambito Unix e Gnu/Linux, quando un file viene creato esso appartiene all'utente che l'ha creato e al gruppo principale cui l'utente appartiene.
Il comando chown (CHanche OWNership) permette di modificare sia l'utente sia il gruppo proprietario di un file.
La sua sintassi:

chown [-fhv] [-R [-L | -P]] owner[:group] file ...

I possibili attributi hanno questi significati:

  • -f : Non riporta alcun messaggio d'errore nel caso in cui il comando non abbia successo
  • -h : Se il file è un link simbolico, cambia l'uid e il gid del link
  • -L : Se è specificata l'opzione -R, segue tutti i link simbolici
  • -P : Se è specificata l'opzione -R, nessun link è seguito
  • -R : Cambia uid e gid ricorsivamente in tutti i files e sottocartelle a partire dal file specificato
  • -v : L'opzione verbose serve per avere un output dettagliato sui risultati del comando eseguito


   The owner and group operands are both optional; however, at least one
    must be specified.  If the group operand is specified, it must be pre-
    ceded by a colon (``:) character.
    The owner may be either a numeric user ID or a user name.  If a user name
    is also a numeric user ID, the operand is used as a user name.  The group
    may be either a numeric group ID or a group name.  If a group name is
    also a numeric group ID, the operand is used as a group name.
    For obvious security reasons, the ownership of a file may only be altered
    by a super-user.  Similarly, only a member of a group can change a file's
    group ID to that group.


Nel seguente esempio vogliamo di assegnare al file "filetest1" l'utente proprietario "utente1":

  1. chown utente1 filetest1

Per verificare la modifica apportata utilizziamo il comando seguente:

  1. ls -lh filetest1

Per modificare l'utente proprietario di una directory e tutti i file contenuti al suo interno possiamo utilizzare l'opzione "-R":

  1. chown utente1 -R directory1

Modificare utente e gruppo proprietario di un file con 'chown':

  1. chown utente1:gruppo1 filetest1

Chgrp è un altro comando per cambiare solo il gruppo proprietario di un file:

  1. chgrp gruppo1 filetest1


Permessi sui file


Gestione dei permessi sui file con Chmod. Il comando che permette di gestire i permessi su file e directory prende il nome "chmod". Ci sono due modi per impostare i permessi utilizzando il comando 'chmod', la modalità simbolica e quella numerica ottale.

Modalità simbolica di chmod. Esempio per impostare su una directory chiamata "directory1" i permessi di lettura(r), scrittura(w) ed accesso(x) per gli utenti proprietario(u), gruppo(g) e altri(o):

  1. chmod ugo+rwx directory1

Significato delle opzioni disponibili del precedente comando:

'u' = user - applica i permessi all'utente proprietario del file,
'g' = group - applica i permessi al gruppo proprietario del file,
'o' = other - applica i permessi ad altri utenti,
'a' = all - applica i permessi a tutti gli utenti,
'+' = questo operatore logico aggiunge i permessi specificati,
'-' =  questo operatore logico rimuove i permessi specificati

Esempio che mostra come rimuovere su una directory chiamata "directory1" i permessi di lettura(r), scrittura(w) ed accesso(x) per gli utenti gruppo(g) e altri(o):

  1. chmod go-rwx directory1

In questo caso abbiamo utilizzato l'operatore logico "-" per rimuovere i permessi.

Esempio per aggiungere i permessi di lettura(r) ed esecuzione(x) solo per l'utente proprietario(u), rimuovendo prima eventuali permessi abilitati per tutti gli utenti:

  1. chmod a-rwx filetest1
  2. chmod u+rx filetest1

Modalità numerica ottale di chmod. Un altro modalità per settare i permessi è la modalità numerica ottale ove un valore numerico è composto da quattro cifre ognuna rappresentata da un valore numerico che va "0" a "7", come per esempio "2741". Il valore che va da "0" a "7" rappresenta in forma numerica i permessi come di seguito riportato:

 4 è uguale a lettura(r),
 2 è uguale a scrittura(w),
 1 è uguale a esecuzione(x),
 0 rimuove i permessi.

Quindi il valore numerico di una cifra è pari alla somma di tali valori. Prendendo come esempio il quartetto "2741", il valore della seconda cifra "7", è uguale a 4(lettura)+2(scrittura)+1(esecuzione)=7.

Vediamo di capire adesso il significato delle quattro cifre, per esempio "2741". Partendo sempre da sinistra, la prima cifra(2) si riferisce agli attributi dei permessi speciali, che vedremo più avanti. La seconda cifra(7) si riferisce ai permessi per l'utente proprietario. La terza cifra(4) fa riferimento ai permessi per il gruppo. La quarta e ultima cifra(1) si riferisce ai permessi per gli altri utenti non del gruppo.

Supponiamo adesso di assegnare i permessi di lettura, scrittura ed esecuzione(4+2+1) soltanto per l'utente proprietario del file denominato "filetest1" e nessun permesso per tutti gli altri utenti:

  1. chmod 0700 filetest1

o in maniera analoga, dal momento che le cifre omesse partendo da sinistra sono considerate "0":

  1. chmod 700 filetest1

Altro esempio che spiega come impostare i permessi di lettura e scrittura(4+2) per l'utente proprietario, e di sola lettura(4) per tutti gli altri utenti:

  1. chmod 644 filetest1