diff --git a/101/0026_proprietá_permessi_file.md b/101/0026_proprietá_permessi_file.md index 9912aef..c48e978 100644 --- a/101/0026_proprietá_permessi_file.md +++ b/101/0026_proprietá_permessi_file.md @@ -1,5 +1,85 @@ +# Introduzione ai permessi + Ogni file su disco é di proprietá di un utente e di un gruppo di utenti e dispone di tre tipi di autorizzazioni: - per il proprietario - per il gruppo che possiede il file -- per gli altri \ No newline at end of file +- per gli altri + +```bash + > ls -l +total 0 +drwxrwxr-x 1 dado dado 0 Jan 5 15:49 Desktop +drwxr-xr-x 1 dado dado 12 Jan 3 22:18 Videos +``` + +- Il primo carattere, `d`, indica il tipo di file +- I successivi tre, `rwx`, i permessi per il proprietario del file (*user*) +- I successivi tre, `rwx`, i permessi per il gruppo che possiede il file (*group*) +- Gli ultimi tre, `r-x`, indicano i permessi per gli altri (*others*) +- La seconda colonna, `1`, indica il numero di *hard link* che puntano a quel file +- La 5a colonna mostra la dimensione del file +- La 6a la data e l'ora dell'ultima modifica del file + +## Tipi di file + +- `-`: normal file +- `d`: directory +- `l`: symbolic link +- `b`: block device +- `c`: le porte seriali sono esempi comuni di dispositivi a caratteri +- `s`: i socket servono come tramite per il passaggio di informazioni tra due programmi + +## Permessi sui file + +- `r`: read, ha un valore ottale di 4. Indica il permesso di aprire un file e leggerne il contenuto +- `w`: write, ha un valore ottale di 2. Indica il permesso di modificare un file +- `x`: execute, con un valore ottale di 1. Permesso di esecuzione del file + +## Permessi sulle directory + +- `r`: read, ha un valore ottale di 4. Indica il permesso di leggere il contenuto della directory, ma non implica il permesso di leggere i file stessi +- `w`: write, ha un valore ottale di 2. Indica il permesso di creare o eliminare file in una directory o modificarne i nomi, permessi e proprietari. Se un utente ha il permesso di scrittura su una directory, potrá modificare i permessi di *qualsiasi* file (contenuto) nella directory, anche se appartiene ad un altro utente +- `x`: execute, con un valore ottale di 1. Indica il permesso di entrare in una directory, ma non di elencarne il contenuto (necessaria l'autorizzazione `r`). + +### Modificare i permessi sui file + +Si utilizza il comando `chmod`. Solo il proprietario di un file o l'utente root possono modificare i permessi di un file. É possibile cambiare i permessi con due modalitá: + +- simbolica +- ottale + +Quando viene eseguito su una directory, vengono modificati solo i permessi di quella specifica directory. Per la modalitá ricorsiva, aggiungere `-R`. + +#### Modalitá simbolica + +```bash +chmod u[,g,o]+x file +chmod u-r file +chmod u=rwx file +chmod o=rw- file +chmod u+x,g,o+r file + +``` + +dove: + +- `u`: user +- `g`: group +- `o`: others +- `+`: concedere un permesso +- `-`: revocare un permesso +- `=`: impostare un set di permessi specifico +- `r` o `w` o `x`: autorizzazione + +#### Modalitá ottale + +I permessi sono specificati come valore a tre cifre su notazione ottale. Sono specificati nel seguente ordine: r(4)w(2)x(1). Se non ci sono permessi, si usa il valore 0. Quindi il permesso rwx sarebbe 4+2+1=7. La prima lettera indica l'utente, la seconda il gruppo e la terza tutti gli altri. + +### Modificare la proprietá di un file + +Si usa il comando `chown`: + +```bash +chown USER:GROUP file +``` \ No newline at end of file