Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "AmministrazioneSistema/PermessiFile"
Differenze tra le versioni 4 e 66 (in 62 versioni)
Versione 4 del 18/04/2006 18.28.17
Dimensione: 11935
Commento: avanzamento della traduzione
Versione 66 del 29/12/2009 20.59.18
Dimensione: 14307
Commento: corretti i link come da segnalazione
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
#format wiki
#LANGUAGE it
Linea 2: Linea 4:
||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;">'''Contents'''[[BR]][[TableOfContents]]||


= Comprendere e utilizzare i permessi dei file =

Nel mondo Linux e Unix tutto è un file. Le directory sono file, i file sono file e anche i dispositivi sono file. Di solito i dispositivi vengono chiamati anche nodi (node), ma sono ancora dei file. Tutti i file all'interno del sistema hanno associati dei permessi che consentono, o non consentono, agli altri di visualizzare, modificare o eseguire tale file. Il file di tipo "directory" ha dei permessi differenti rispetto gli altri file. Il super utente "root" ha la possibilità di accedere a qualsiasi file nel sistema. Ogni file ha delle restrizioni di accesso con i propri permessi associati, restrizioni sugli utenti con associazione di proprietario e gruppo. I permessi vengono anche definiti come bit.

Per modificare file il cui proprietario è l'utente root, l'utilizzo di '''`sudo`''' è necessario. Consultare la pagina [:Sudo:Sudo] per maggiori informazioni.

Se i bit di lettura ed esecuzione del proprietario del file sono attivi, i permessi risultano:
{{{
-r-x------
}}}
[[Indice(depth=2)]]

[[Include(StrumentiWiki/GuideConsigliate)]]

[[VersioniSupportate(intrepid hardy )]]

= Introduzione =

Storicamente, i sistemi ''Unix-like'' (tra cui GNU/Linux e quindi Ubuntu) hanno avuto l'esigenza di poter controllare ogni aspetto del computer e del software tramite la riga di comando, e il sistema usato per avere questo tipo di controllo è cercare di trasformare tutto in un file, tramite i ''filesystem''. Pertanto i dati sono file, le directory tramite cui sono ordinati i file sono anch'esse file, i dispositivi, come anche i singoli processi e tutto ciò che riguarda lo stato attuale del computer, sono rappresentati tramite file. Tutti i file all'interno del sistema hanno associati un utente proprietario, un gruppo di utenti e dei permessi che ne regolano l'accesso. Solo il super utente "root" ha la possibilità di accedere a qualsiasi file nel sistema senza tenere conto dei permessi.

Per modificare i permessi di un file il cui proprietario non è l'utente corrente, è necessario l'utilizzo del comando '''sudo'''.

= Permessi in azione =

Per visualizzare i permessi dei file e delle cartelle contenute nella directory corrente si usa il seguente comando:
{{{
ls -l
}}}

Il comando [:AmministrazioneSistema/ComandiBase#ls:ls] accetta come argomento un percorso che può rappresentare un singolo file o una qualunque directory del sistema, a patto che si abbiano i permessi per leggere tale directory. Se l'argomento non viene fornito, il comando viene applicato alla directory corrente. Esempio:
{{{
ls -l /home
}}}

Verranno visualizzate informazioni sui file e sulle directory presenti nella cartella di sistema {{{/home}}}:
{{{
totale 28
drwx------ 2 root root 16384 2007-02-21 11:18 lost+found
drwxr-xr-x 33 utente1 utente1 4096 2007-05-21 11:41 utente1
drwxr-x--- 68 utente2 utente2 4096 2007-05-21 11:40 utente2
drwxr-xr-x 2 utente3 utente 4096 2007-05-21 11:59 utente3
}}}

Il primo carattere a sinistra indica un attributo specifico del file, per esempio nel caso il file rappresenti una directory comparirà il carattere «d». I successivi nove caratteri rappresentano i permessi e sono divisi in tre terne.

||<style="background-color:#F6D358;":>'''Terna'''||<style="background-color:#F6D358;":>'''Output di ls''' ||<style="background-color:#F6D358;":>'''Utente''' ||
||prima terna||<:> -rwx---``---|| owner (proprietario) ||
||seconda terna||<:> --``--rwx---|| group (gruppo) ||
||terza terna||<:> ---``---``-rwx|| other (altro) ||
Linea 18: Linea 46:
|| '''Permesso'''|| '''Azione'''|| '''opzione di chmod'''||
|| read (lettura)|| (lettura) ||r o 4||
|| write (scrittura)|| (modifica) ||w o 2||
|| execute (esecuzione)|| (esecuzione) ||x o 1||

Sono presenti anche tre diversi restrizioni per l'utente:

|| '''Utente'''|| '''output di ''ls'''''||
|| owner (proprietario)||{{{-rwx------}}}||
|| group (gruppo)||{{{----rwx---}}}||
|| other (altro)||{{{-------rwx}}}||

Le directory hanno i loro permessi. I permessi delle directory consentono azioni differenti rispetto ai file o i dispositivi.

|| '''Permesso'''|| '''Azione'''|| '''opzione di chmod'''||
|| read (lettura)|| (lettura, visualizzazione contenuto) ||r o 4||
|| write (scrittura)|| (creare o rimuovere file dalla directory) ||w o 2||
|| execute (esecuzione)|| (entrare nella directory) ||x o 1||

 * '''read''' (lettura) consente o non consente la visualizzazione del contenuto della directory, con il comando '''`ls`'''
 * '''write''' (scrittura) consente o non constente la creazione o la cancellazione di file dalla directory (Attenzione: '''il permesso di scrittura (write) consente la cancellazione di un file, all'interno della directory, anche se l'utente non possiede i permessi di scrittura su quel file!''')
 * '''execute''' (esecuzione) consente o non consente di entrare nella directory, con il comando '''`cd`'''

= Permessi in azione =

{{{
user@host:/home/user$ ls -l /etc/hosts
-rw-r--r-- 1 root root 288 2005-11-13 19:24 /etc/hosts
user@host:/home/user$
}}}

Utilizzando l'esempio precedente è possibile visualizzare il file `/etc/hosts` il cui proprietario è l'utente root e appartiene al gruppo root.

Quali sono i permessi del file `/etc/hosts`?
{{{
proprietario = lettura e scrittura (read write) (rw-)
gruppo = lettura (read) (r--)
altro = lettura (read) (r--)
}}}

||<style="background-color:#F6D358;":>'''Simbolo'''||<style="background-color:#F6D358;":>'''Permesso'''||<style="background-color:#F6D358;":>'''Azione'''||
||<:>r || read || lettura ||
||<:>w || write || scrittura ||
||<:>x || execute || esecuzione ||

Nel caso ci si riferisca a un file:
 * «r» (lettura) consente di aprire un file per visualizzarne il contenuto;
 * «w» (scrittura) consente di sovrascrivere o aggiungere dati a un file;
 * «x» (esecuzione) consente di eseguire un file (nel caso si tratti di un file eseguibile).

Nel caso ci si riferisca a una directory:
 * «r» (lettura) consente la visualizzazione del contenuto della directory, con il comando '''ls''';
 * «w» (scrittura) consente la creazione o l'eliminazione di file all'interno della directory;
 * «x» (esecuzione) consente di accedere alla directory (per esempio con il comando [:AmministrazioneSistema/ComandiBase#cd:cd]) anche nel caso non se ne possa visualizzarne il contenuto.

||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/warning.png,,center)]] ||<style="padding:0.5em; border:none;">'''Applicare il permesso di scrittura ad una directory consente la cancellazione dei file contenuti in essa anche ad utenti che non possiedono i permessi di scrittura su tali file.''' ||

[[Anchor(chmod)]]
Linea 61: Linea 66:
Il comando da utilizzare per la modifica dei permessi è '''`chmod`'''. Ci sono due metodi per modificare i permessi, attraverso l'uso dei numero o delle lettere. L'utilizzo delle lettere è solitamente più facile da capire per molti. Durante la modifica dei permessi prestare attenzione a non causare problemi di sicurezza, alcuni file hanno dei permessi molto restrittivi per scongiurare un accesso non autorizzato. Il file `/etc/shadow`, file che contiene tutte le password, per esempio, non ha impostato alcun permesso per gli utenti.

{{{
user@host:/home/user# ls -l /etc/shadow
-rw-r----- 1 root shadow 869 2005-11-08 13:16 /etc/shadow
user@host:/home/user#

Permessi:
proprietario = lettura e scrittura (rw-)
gruppo = lettura (r--)
altro = nessuono (---)

Proprietari:
proprietario = root
gruppo = shadow
}}}


== Utilizzare chmod con le lettere ==

{{{
Uitlizzo: chmod {opzioni} nomefile
}}}

|| '''Opzioni'''|| '''Definizione'''||
|| u || proprietario ||
|| g || gruppo ||
|| o || altro ||
|| x || esecuzione ||
|| w || scrittura ||
|| r || lettura ||
|| + || aggiungi permesso ||
|| - || annulla permesso ||
|| = || imposta permesso ||

Di seguito una lista di esempi di utilizzo del comando '''`chmod`''' con le lettere (provateli sul vostro sistema).

Per prima cosa creare alcuni file vuoti:
{{{
user@host:/home/user$ touch file1 file2 file3 file4
user@host:/home/user$ ls -l
Il comando da utilizzare per la modifica dei permessi è '''chmod''', la cui sintassi è: {{{
chmod [OPZIONI] permessi nomefile
}}}

Ci sono due metodi per modificare i permessi, attraverso l'uso dei numeri o delle lettere. Non è consigliabile modificare i permessi ai file di sistema, alcuni file hanno dei permessi molto restrittivi per scongiurare accessi non autorizzati e problemi di sicurezza. Ad esempio, il file `/etc/shadow`, che contiene le password utente, non ha impostato alcun permesso per gli utenti.

== Utilizzare chmod con i letterali ==

Quello che segue è il dizionario dei letterali da usare con i permessi:

||<style="background-color:#F6D358;":>'''Opzioni''' ||<style="background-color:#F6D358;":>'''Definizione''' ||
||<:> u || proprietario ||
||<:> g || gruppo ||
||<:> o || altri ||
||<:> x || esecuzione ||
||<:> w || scrittura ||
||<:> r || lettura ||
||<:> + || aggiungi permesso ||
||<:> - || annulla permesso ||
||<:> = || imposta permesso ||

Quelli che seguono sono degli esempi di utilizzo del comando '''chmod''' con i letterali: per prima cosa è utile creare alcuni file vuoti. Digitare il seguente comando:
{{{
touch file1 file2 file3 file4
}}}

Al fine di rendersi conto di come variano i permessi si può utilizzare il comando '''ls -l''' dopo ogni applicazione del comando '''chmod'''. Appena creati i file, l'output del comando '''ls''' sarà simile al seguente: {{{
Linea 108: Linea 99:
Aggiungere il bit di esecuzione al "proprietario":
{{{
user@host:/home/user$ chmod u+x file1
user@host:/home/user$ ls -l file1
-rwxr--r-- 1 user user 0 Nov 19 20:13 file1
}}}
Aggiungere a "altro" i bit di scrittura ed esecuzione:
{{{
user@host:/home/user$ chmod o+wx file2
user@host:/home/user$ ls -l file2
-rw-r--rwx 1 user user 0 Nov 19 20:13 file2
}}}
Rimovere al "gruppo" il bit di lettura:
{{{
user@host:/home/user$ chmod g-r file3
user@host:/home/user$ ls -l file3
-rw----r-- 1 user user 0 Nov 19 20:13 file3
}}}
Aggiungere i bit di lettura, scrittura ed esecuzione a tutti:
{{{
user@host:/home/user$ chmod ugo+rwx file4
user@host:/home/user$ ls -l file4
-rwxrwxrwx 1 user user 0 Nov 19 20:13 file4
user@host:/home/user$
}}}

Aggiungere il bit di esecuzione al «proprietario»: {{{
chmod u+x file1
}}}

Aggiungere agli «altri» i bit di scrittura ed esecuzione: {{{
chmod o+wx file2
}}}

Negare al «gruppo» il bit di lettura:
{{{
chmod g-r file3
}}}

Aggiungere i bit di lettura, scrittura ed esecuzione a tutti gli utenti:
{{{
chmod ugo+rwx file4
}}}
Linea 137: Linea 120:
{{{
Utilizzo: chmod {opzioni} nomefile
}}}

|| '''Opzioni'''|| '''Definizione'''||
|| {{{#--}}} || proprietario ||
|| {{{-#-}}} || gruppo ||
|| {{{--#}}} || altro ||
|| 1 || esecuzione ||
|| 2 || scrittura ||
|| 4 || lettura ||

"Proprietario", "Gruppo" e "Altro" sono rappresentati da tre numeri. Per ottenere il valore da impostare dell'opzione, determinare la tipologia d accesso e poi fare la somma.

Per esempio, se si desidera un file con i permessi `-rw-rw-rwx` è necessario utilizzare:

|| '''Proprietario'''|| '''Gruppo'''|| '''Altro'''||
|| lettura e scrittura|| lettura e scrittura || lettura, scrittura ed esecuzione||
|| 4+2=6 || 4+2=6 || 4+2+1=7 ||

{{{
user@host:/home/user$ chmod 667 nomefile
}}}

Un altro esempio, se si desidera un file con i permessi `--w-r-x--x` è necessario utilizzare:

|| '''Proprietario'''|| '''Gruppo'''|| '''Altro'''||
|| lettura|| lettura ed esecuzione|| esecuzione||
|| 2 || 4+1=5 || 1 ||

{{{
user@host:/home/user$ chmod 251 nomefile
}}}

Di seguito una lista di esempi di utilizzo del comando '''`chmod`''' con i numeri (provateli sul vostro sistema).

Per prima cosa creare alcuni file vuoti:
{{{
user@host:/home/user$ touch file1 file2 file3 file4
user@host:/home/user$ ls -l
||<style="background-color:#F6D358;":>'''Opzioni''' ||<style="background-color:#F6D358;":>'''Definizione''' ||<style="background-color:#F6D358;":>'''Definizione in lettere''' ||
||<:> #-- || proprietario ||u (user)||
||<:> -#- || gruppo || g (group)||
||<:> --# || altri || o (others)||
||<:> 0 || nessun permesso || - ||
||<:> 1 || esecuzione || (x, execution)||
||<:> 2 || scrittura || (w, write) ||
||<:> 3 || esecuzione + scrittura || (xw) ||
||<:> 4 || lettura || (r, read)||
||<:> 5 || lettura + esecuzione|| (rx, somma dei valori 1+4) ||
||<:> 6 || lettura + scrittura|| (rw, somma dei valori 2+4) ||
||<:> 7 || lettura + scrittura + esecuzione|| (rwx, somma dei valori 1+2+4) ||

«Proprietario», «gruppo» e «altri» sono rappresentati da tre numeri. Per ottenere il valore da impostare, è sufficiente determinare la tipologia d accesso e poi fare la somma.

Per esempio, se si desidera un file con i permessi «-rw-rw-rwx» è necessario utilizzare la seguente combinazione:

||<style="background-color:#F6D358;":> '''Proprietario''' ||<style="background-color:#F6D358;":> '''Gruppo''' ||<style="background-color:#F6D358;":> '''Altri''' ||
||<:> lettura e scrittura||<:> lettura e scrittura ||<:> lettura, scrittura ed esecuzione||
||<:> 4+2=6 ||<:> 4+2=6 ||<:> 4+2+1=7 ||

Dunque, il comando da digitare sarà il seguente:
{{{
chmod 667 nomefile
}}}

Se invece si desidera un file con i permessi «--w-r-x--x» è necessario utilizzare la seguente combinazione:

||<style="background-color:#F6D358;":> '''Proprietario''' ||<style="background-color:#F6D358;":> '''Gruppo''' ||<style="background-color:#F6D358;":>'''Altri''' ||
||<:> scrittura||<:> lettura ed esecuzione||<:> esecuzione||
||<:> 2 ||<:> 4+1=5 ||<:> 1 ||

Per applicare tali permessi sarà necessario digitare il seguente comando:
{{{
chmod 251 nomefile
}}}

Quelli che seguono sono degli esempi di utilizzo del comando '''chmod''' con i numeri: per prima cosa creare alcuni file vuoti con il seguente comando:
{{{
touch file1 file2 file3 file4
}}}

I permessi di tali file, visualizzabili con '''ls''', corrispondono ai seguenti:
{{{
Linea 183: Linea 170:
Aggiugnere il bit di esecuzione al "proprietario":
{{{
user@host:/home/user$ chmod 744 file1
user@host:/home/user$ ls -l file1
-rwxr--r-- 1 user user 0 Nov 19 20:13 file1
}}}
Aggiungere ad "altro" i bit lettura ed esecuzione:
{{{
user@host:/home/user$ chmod 647 file2
user@host:/home/user$ ls -l file2
-rw-r--rwx 1 user user 0 Nov 19 20:13 file2
}}}
Rimuovere a "gruppo" il bit lettura:
{{{
user@host:/home/user$ chmod 604 file3
user@host:/home/user$ ls -l file3
-rw----r-- 1 user user 0 Nov 19 20:13 file3
}}}
Aggiungere i bit lettura, scrittura ed esecuzione a tutti:
{{{
user@host:/home/user$ chmod 777 file4
user@host:/home/user$ ls -l file4
-rwxrwxrwx 1 user user 0 Nov 19 20:13 file4
user@host:/home/user$
}}}

Aggiugnere il bit di esecuzione al «proprietario»:
{{{
chmod 744 file1
}}}

Aggiungere ad «altri» i bit lettura ed esecuzione:
{{{
chmod 647 file2
}}}

Negare a «gruppo» il bit lettura:
{{{
chmod 604 file3
}}}

Aggiungere i bit lettura, scrittura ed esecuzione a tutti: {{{
chmod 777 file4
}}}

N.B. Per cambiare i permessi in modo ricorsivo a tutti i file presenti in una cartella ed alla cartella stessa si deve usare l'opzione -R subito dopo il comando chmod: {{{
chmod -R 777 Cartella/
}}}
da i permessi di lettura, scrittura, esecuzione di ogni singolo file della cartella `Cartella/` a tutti gli utenti (proprietario, gruppo e altri)
Linea 211: Linea 198:
Cambiare i permessi a file di cui non si è proprietari.

attachment:Icone/Piccole/warning.png '''Cambiare i permessi nel modo sbagliato ai file sbagliati può compromettere l'integrità del sistema. Utilizzare il comando `sudo` con attenzione!'''
I comandi '''chmod''' e '''sudo''' possono essere combinati per cambiare i permessi a file di cui non si è proprietari.

||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/warning.png,,center)]] ||<style="padding:0.5em; border:none;">'''Cambiare i permessi nel modo sbagliato ai file sbagliati può compromettere l'integrità del sistema. Utilizzare il comando''' [:AmministrazioneSistema/Sudo:sudo] '''con attenzione.''' ||

Quelli che seguono sono degli esempi di gestione dei permessi con i privilegi di amministrazione del sistema:
Linea 227: Linea 215:
== Per maggiori informazioni ==

 * ''man chmod''
 * ''man chown''
 * ''man chgrp''


= Cambiare i permessi delle partizioni con umask =

I nuovi utenti che provino a cambiare i permessi a una partizione attraverso l'utilizzo di '''`sudo`'''/'''`kdesudo`''' noteranno che le modifiche non hanno alcun effetto. Questo è dovuto al fatto che il modificatore `umask` all'interno del file `fstab` sovrascrive i cambiamenti che si tentano di effettuare. Un esempio comune è un utente che cerca di attribuire i permessi di scrittura a una partizione FAT.

I permessi per le partizioni sono comunemente modificati attraverso l'uso del modificatore `umask` nel file `/etc/fstab`.
[[Anchor(umask)]]
= Cambiare i permessi delle partizioni =

== umask, fmask e dmask ==

File system come NTFS o FAT hanno un sistema per gestire utenti e permessi incompatibile col sistema usato da GNU/Linux, pertanto durante la fase di montaggio di tali filesystem viene assegnato in modo predefinito un utente proprietario (con relativi permessi) e un gruppo proprietario (con relativi permessi) a tutti i file presenti in essi, e per tutto il tempo in cui tali file system rimangono montati non si potrà modificare né i permessi né l'utente o il gruppo proprietario. In modo predefinito vengono assegnati permessi di lettura, scrittura ed esecuzione per tutti gli utenti e sono validi sia per i file che per le directory, ma è possibile togliere permessi tramite la cosiddetta "maschera dei permessi", che corrisponde all'opzione «umask». Per togliere permessi alle sole directory si usa l'opzione «dmask», mentre per i soli file di dati si usa «fmask».

I permessi per le partizioni vengono solitamente modificati attraverso l'uso del suddetto modificatore nel file `/etc/fstab`, il contenuto del quale sarà simile al seguente:
Linea 242: Linea 225:
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/hdb2 / ext3 defaults,errors=remount-ro 0 1
/dev/hda1 /media/hda1 vfat umask=000 0 0
/dev/hdb1 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
/dev/hda2 /media/windows ntfs ro,nls=utf8,umask=0222 0 0
/dev/hdd1 /media/storage ntfs ro,nls=utf8,umask=0222 0 0
/dev/hdd5 /media/fat vfat umask=000 0 0
}}}

Il modificatore `umask` imposta i permessi a tutti gli utenti, non può essere sovrascritto modificando i permessi atraverso un navigatore di file, nemmeno da un terminale di root. Un valore di umansk di `0222` permette l'accesso in lettura a tutti gli utenti e scrittura all'utente root, questo va bene per le partizioni tipo NTFS. Un valore di `0000` consente accesso in lettura e scrittura a tutti.

Esistono delle opzioni analoghe chiamate `fmask` e `dmask`. `famsk` è specifico per i file, `dmask` per le directory. Funzionano alla stessa maniera di `umask`, ma offrono un controllo più preciso. Per esempio, le directory sono sempre eseguibili, ma la maggior parte dei file non lo sono.
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/sda1 / ext3 defaults,errors=remount-ro 0 1
/dev/sda2 /media/windowsXP ntfs-3g umask=0222,ro,nls=utf8 0 0
/dev/sdb1 /media/windows98 vfat umask=0002,nls=utf8 0 0
/dev/sdb2 /media/storage ntfs-3g dmask=000,fmask=113 0 0
}}}

Nell'esempio, la directory `/media/windowsXP` viene montata in sola lettura (opzione '''ro''') e la maschera corrispondente toglie i permessi di scrittura a tutti gli utenti. La directory `/media/windows98` lascia tutti i permessi all'utente proprietario e al gruppo proprietario, ma toglie il permesso di scrittura agli altri utenti, in modo che questi non potranno nè creare o eliminare file (permesso di scrittura negato per le directory), nè modificare i file esistenti (permesso di scrittura negato per i file). Nella directory `/media/storage` tutti gli utenti possono accedere a tutte le directory, possono creare o eliminare file (come indicato dalla dmask), ma non hanno il permesso di eseguire eventuali file eseguibili, e in più gli utenti che non fanno parte del gruppo proprietario o che non sono l'utente proprietario non possono modificare nessun file.
Linea 260: Linea 237:
To change permissions for a FAT volume, it must first be unmounted with the command

{{{
user@host:/home/user$ sudo umount /dev/xxxx
}}}

Where xxxx is the FAT volume you wish to modify. Begin by backing up the file /etc/fstab
{{{
user@host:/home/user$ sudo cp /etc/fstab /etc/fstab_backup1
}}}

Next, edit the fstab file with gedit, using the command

{{{
user@host:/home/user$ sudo gedit /etc/fstab
}}}

Modify the line detailing the FAT volume, changing
{{{
/dev/xxxx /media/xxxx vfat defaults 0 0
}}}

to

{{{
/dev/xxxx /media/xxxx vfat umask=000 0 0
}}}

Save and exit gedit. This will allow ALL users read and write access to the drive. (I am a home user who is willing to take his chances. A more knowledgeable contributor will clarify this section.)

To finish, mount your volumes as per the specifications of the fstab file by using the command

{{{
user@host:/home/user$ sudo mount -a
}}}

Voila! Your FAT partition now allows read and write access to all users.

== Per maggiori informazioni ==

 * ''man mount''

= ACL =

ACLs are a way of achieving a finer granularity of permissions than is possible with the standard Unix file permissions. Documentation can be found in the online man pages:

 * ''man acl''
 * ''man setfacl''
 * ''man getfacl''
Per iniziare fare una copia di sicurezza del file `/etc/fstab` con il seguente comando:
{{{
sudo cp /etc/fstab /etc/fstab.old
}}}

Aprire il file sopra citato con un [:Ufficio/EditorDiTesto:editor di testo] e con i [:AmministrazioneSistema/Sudo:privilegi di amministrazione]. A tale scopo si può digitare un comando simile al seguente:
{{{
sudo nano /etc/fstab
}}}

Cercare la riga relativa al volume FAT desiderato. Dovrebbe essere simile alla seguente:
{{{
/dev/dispositivo /punto/di/mount vfat defaults 0 0
}}}

Una volta trovata, modificarla come segue:
{{{
/dev/dispositivo /punto/di/mount vfat umask=000 0 0
}}}

In questo modo tutti gli utenti avranno accesso in scrittura e lettura alla partizione.

||<tablestyle="text-align: justify; width:100%; " style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Il percorso'' `/punto/di/mount` ''è la directory da cui si potrà accedere alla partizione''. ||

La modifica sarà applicata automaticamente al successivo riavvio di Ubuntu. Se si desidera applicarla subito,
è sufficiente smontare il volume e rimontarlo con i seguenti comandi:
{{{
sudo umount /punto/di/mount
sudo mount /punto/di/mount
}}}

= Ulteriori risorse =

 * [http://linux.die.net/man/1/chmod Pagina man di chmod]
 * [http://linux.die.net/man/2/chown Pagina man di chown]
 * [http://linux.die.net/man/1/chgrp Pagina man di chgrp]
 * [:Hardware/DispositiviPartizioni/MontarePartizioni/Fat:Montare una partizione FAT]
Linea 310: Linea 275:
CategoryInTraduzione CategoryAmministrazione CategoryConsigliata

BR Indice(depth=2)

Include(StrumentiWiki/GuideConsigliate)

VersioniSupportate(intrepid hardy )

Introduzione

Storicamente, i sistemi Unix-like (tra cui GNU/Linux e quindi Ubuntu) hanno avuto l'esigenza di poter controllare ogni aspetto del computer e del software tramite la riga di comando, e il sistema usato per avere questo tipo di controllo è cercare di trasformare tutto in un file, tramite i filesystem. Pertanto i dati sono file, le directory tramite cui sono ordinati i file sono anch'esse file, i dispositivi, come anche i singoli processi e tutto ciò che riguarda lo stato attuale del computer, sono rappresentati tramite file. Tutti i file all'interno del sistema hanno associati un utente proprietario, un gruppo di utenti e dei permessi che ne regolano l'accesso. Solo il super utente "root" ha la possibilità di accedere a qualsiasi file nel sistema senza tenere conto dei permessi.

Per modificare i permessi di un file il cui proprietario non è l'utente corrente, è necessario l'utilizzo del comando sudo.

Permessi in azione

Per visualizzare i permessi dei file e delle cartelle contenute nella directory corrente si usa il seguente comando:

ls -l

Il comando [:AmministrazioneSistema/ComandiBase#ls:ls] accetta come argomento un percorso che può rappresentare un singolo file o una qualunque directory del sistema, a patto che si abbiano i permessi per leggere tale directory. Se l'argomento non viene fornito, il comando viene applicato alla directory corrente. Esempio:

ls -l /home

Verranno visualizzate informazioni sui file e sulle directory presenti nella cartella di sistema /home:

totale 28
drwx------  2 root     root    16384 2007-02-21 11:18 lost+found
drwxr-xr-x 33 utente1  utente1  4096 2007-05-21 11:41 utente1
drwxr-x--- 68 utente2  utente2  4096 2007-05-21 11:40 utente2
drwxr-xr-x  2 utente3  utente   4096 2007-05-21 11:59 utente3

Il primo carattere a sinistra indica un attributo specifico del file, per esempio nel caso il file rappresenti una directory comparirà il carattere «d». I successivi nove caratteri rappresentano i permessi e sono divisi in tre terne.

Terna

Output di ls

Utente

prima terna

-rwx------

owner (proprietario)

seconda terna

----rwx---

group (gruppo)

terza terna

-------rwx

other (altro)

Sono presenti tre diverse restrizioni di accesso:

Simbolo

Permesso

Azione

r

read

lettura

w

write

scrittura

x

execute

esecuzione

Nel caso ci si riferisca a un file:

  • «r» (lettura) consente di aprire un file per visualizzarne il contenuto;
  • «w» (scrittura) consente di sovrascrivere o aggiungere dati a un file;
  • «x» (esecuzione) consente di eseguire un file (nel caso si tratti di un file eseguibile).

Nel caso ci si riferisca a una directory:

  • «r» (lettura) consente la visualizzazione del contenuto della directory, con il comando ls;

  • «w» (scrittura) consente la creazione o l'eliminazione di file all'interno della directory;
  • «x» (esecuzione) consente di accedere alla directory (per esempio con il comando [:AmministrazioneSistema/ComandiBase#cd:cd]) anche nel caso non se ne possa visualizzarne il contenuto.

Immagine(Icone/Piccole/warning.png,,center)

Applicare il permesso di scrittura ad una directory consente la cancellazione dei file contenuti in essa anche ad utenti che non possiedono i permessi di scrittura su tali file.

Anchor(chmod)

Cambiare i permessi

Il comando da utilizzare per la modifica dei permessi è chmod, la cui sintassi è:

chmod [OPZIONI] permessi nomefile

Ci sono due metodi per modificare i permessi, attraverso l'uso dei numeri o delle lettere. Non è consigliabile modificare i permessi ai file di sistema, alcuni file hanno dei permessi molto restrittivi per scongiurare accessi non autorizzati e problemi di sicurezza. Ad esempio, il file /etc/shadow, che contiene le password utente, non ha impostato alcun permesso per gli utenti.

Utilizzare chmod con i letterali

Quello che segue è il dizionario dei letterali da usare con i permessi:

Opzioni

Definizione

u

proprietario

g

gruppo

o

altri

x

esecuzione

w

scrittura

r

lettura

+

aggiungi permesso

-

annulla permesso

=

imposta permesso

Quelli che seguono sono degli esempi di utilizzo del comando chmod con i letterali: per prima cosa è utile creare alcuni file vuoti. Digitare il seguente comando:

touch file1 file2 file3 file4

Al fine di rendersi conto di come variano i permessi si può utilizzare il comando ls -l dopo ogni applicazione del comando chmod. Appena creati i file, l'output del comando ls sarà simile al seguente:

total 0
-rw-r--r--  1 user user 0 Nov 19 20:13 file1
-rw-r--r--  1 user user 0 Nov 19 20:13 file2
-rw-r--r--  1 user user 0 Nov 19 20:13 file3
-rw-r--r--  1 user user 0 Nov 19 20:13 file4

Aggiungere il bit di esecuzione al «proprietario»:

chmod u+x file1

Aggiungere agli «altri» i bit di scrittura ed esecuzione:

chmod o+wx file2

Negare al «gruppo» il bit di lettura:

chmod g-r file3

Aggiungere i bit di lettura, scrittura ed esecuzione a tutti gli utenti:

chmod ugo+rwx file4

Utilizzare chmod con i numeri

Opzioni

Definizione

Definizione in lettere

#--

proprietario

u (user)

-#-

gruppo

g (group)

--#

altri

o (others)

0

nessun permesso

-

1

esecuzione

(x, execution)

2

scrittura

(w, write)

3

esecuzione + scrittura

(xw)

4

lettura

(r, read)

5

lettura + esecuzione

(rx, somma dei valori 1+4)

6

lettura + scrittura

(rw, somma dei valori 2+4)

7

lettura + scrittura + esecuzione

(rwx, somma dei valori 1+2+4)

«Proprietario», «gruppo» e «altri» sono rappresentati da tre numeri. Per ottenere il valore da impostare, è sufficiente determinare la tipologia d accesso e poi fare la somma.

Per esempio, se si desidera un file con i permessi «-rw-rw-rwx» è necessario utilizzare la seguente combinazione:

Proprietario

Gruppo

Altri

lettura e scrittura

lettura e scrittura

lettura, scrittura ed esecuzione

4+2=6

4+2=6

4+2+1=7

Dunque, il comando da digitare sarà il seguente:

chmod 667 nomefile

Se invece si desidera un file con i permessi «--w-r-x--x» è necessario utilizzare la seguente combinazione:

Proprietario

Gruppo

Altri

scrittura

lettura ed esecuzione

esecuzione

2

4+1=5

1

Per applicare tali permessi sarà necessario digitare il seguente comando:

chmod 251 nomefile

Quelli che seguono sono degli esempi di utilizzo del comando chmod con i numeri: per prima cosa creare alcuni file vuoti con il seguente comando:

touch file1 file2 file3 file4

I permessi di tali file, visualizzabili con ls, corrispondono ai seguenti:

total 0
-rw-r--r--  1 user user 0 Nov 19 20:13 file1
-rw-r--r--  1 user user 0 Nov 19 20:13 file2
-rw-r--r--  1 user user 0 Nov 19 20:13 file3
-rw-r--r--  1 user user 0 Nov 19 20:13 file4

Aggiugnere il bit di esecuzione al «proprietario»:

chmod 744 file1

Aggiungere ad «altri» i bit lettura ed esecuzione:

chmod 647 file2

Negare a «gruppo» il bit lettura:

chmod 604 file3

Aggiungere i bit lettura, scrittura ed esecuzione a tutti:

chmod 777 file4

N.B. Per cambiare i permessi in modo ricorsivo a tutti i file presenti in una cartella ed alla cartella stessa si deve usare l'opzione -R subito dopo il comando chmod:

chmod -R 777 Cartella/

da i permessi di lettura, scrittura, esecuzione di ogni singolo file della cartella Cartella/ a tutti gli utenti (proprietario, gruppo e altri)

Utilizzare chmod con sudo

I comandi chmod e sudo possono essere combinati per cambiare i permessi a file di cui non si è proprietari.

Immagine(Icone/Piccole/warning.png,,center)

Cambiare i permessi nel modo sbagliato ai file sbagliati può compromettere l'integrità del sistema. Utilizzare il comando [:AmministrazioneSistema/Sudo:sudo] con attenzione.

Quelli che seguono sono degli esempi di gestione dei permessi con i privilegi di amministrazione del sistema:

user@host:/home/user$ ls -l /usr/local/bin/somefile
-rw-r--r--  1 root root 550 2005-11-13 19:45 /usr/local/bin/somefile
user@host:/home/user$

user@host:/home/user$ sudo chmod o+x /usr/local/bin/somefile

user@host:/home/user$ ls -l /usr/local/bin/somefile
-rw-r--r-x  1 root root 550 2005-11-13 19:45 /usr/local/bin/somefile
user@host:/home/user$

Anchor(umask)

Cambiare i permessi delle partizioni

umask, fmask e dmask

File system come NTFS o FAT hanno un sistema per gestire utenti e permessi incompatibile col sistema usato da GNU/Linux, pertanto durante la fase di montaggio di tali filesystem viene assegnato in modo predefinito un utente proprietario (con relativi permessi) e un gruppo proprietario (con relativi permessi) a tutti i file presenti in essi, e per tutto il tempo in cui tali file system rimangono montati non si potrà modificare né i permessi né l'utente o il gruppo proprietario. In modo predefinito vengono assegnati permessi di lettura, scrittura ed esecuzione per tutti gli utenti e sono validi sia per i file che per le directory, ma è possibile togliere permessi tramite la cosiddetta "maschera dei permessi", che corrisponde all'opzione «umask». Per togliere permessi alle sole directory si usa l'opzione «dmask», mentre per i soli file di dati si usa «fmask».

I permessi per le partizioni vengono solitamente modificati attraverso l'uso del suddetto modificatore nel file /etc/fstab, il contenuto del quale sarà simile al seguente:

#
# <file system> <mount point>       <type>     <options>                    <dump>  <pass>
proc            /proc               proc       defaults                     0       0
/dev/sda1       /                   ext3       defaults,errors=remount-ro   0       1
/dev/sda2       /media/windowsXP    ntfs-3g    umask=0222,ro,nls=utf8       0       0
/dev/sdb1       /media/windows98    vfat       umask=0002,nls=utf8          0       0
/dev/sdb2       /media/storage      ntfs-3g    dmask=000,fmask=113          0       0

Nell'esempio, la directory /media/windowsXP viene montata in sola lettura (opzione ro) e la maschera corrispondente toglie i permessi di scrittura a tutti gli utenti. La directory /media/windows98 lascia tutti i permessi all'utente proprietario e al gruppo proprietario, ma toglie il permesso di scrittura agli altri utenti, in modo che questi non potranno nè creare o eliminare file (permesso di scrittura negato per le directory), nè modificare i file esistenti (permesso di scrittura negato per i file). Nella directory /media/storage tutti gli utenti possono accedere a tutte le directory, possono creare o eliminare file (come indicato dalla dmask), ma non hanno il permesso di eseguire eventuali file eseguibili, e in più gli utenti che non fanno parte del gruppo proprietario o che non sono l'utente proprietario non possono modificare nessun file.

Cambiare i permessi di una partizione FAT con umask

Per iniziare fare una copia di sicurezza del file /etc/fstab con il seguente comando:

sudo cp /etc/fstab /etc/fstab.old

Aprire il file sopra citato con un [:Ufficio/EditorDiTesto:editor di testo] e con i [:AmministrazioneSistema/Sudo:privilegi di amministrazione]. A tale scopo si può digitare un comando simile al seguente:

sudo nano /etc/fstab

Cercare la riga relativa al volume FAT desiderato. Dovrebbe essere simile alla seguente:

/dev/dispositivo       /punto/di/mount     vfat defaults 0 0

Una volta trovata, modificarla come segue:

/dev/dispositivo       /punto/di/mount     vfat umask=000 0 0

In questo modo tutti gli utenti avranno accesso in scrittura e lettura alla partizione.

Immagine(Icone/Piccole/note.png,,center)

Il percorso /punto/di/mount è la directory da cui si potrà accedere alla partizione.

La modifica sarà applicata automaticamente al successivo riavvio di Ubuntu. Se si desidera applicarla subito, è sufficiente smontare il volume e rimontarlo con i seguenti comandi:

sudo umount /punto/di/mount
sudo mount  /punto/di/mount

Ulteriori risorse


CategoryAmministrazione CategoryConsigliata