Skip to content

Condividere una partizione ext3 tra più utenti

1 dicembre 2008
  • C’è che ci sono 2 o più utenti che utilizzano lo stesso computer.
  • C’è che ci vuole un luogo dove poter condividere file tra tutti gli utenti. Che so, tipo un affascinante posto dove poter ascoltare tutta la musica presente sul pc o un’esotica cartella dove avere tutte le foto. Un luogo dove tutti gli utenti possano prendere un qualsiasi file e modificarlo, cancellarlo, spostarlo, etc…
  • C’è che non essendo Windows installato sul computer sembra (e lo è!) assurdo avere partizioni fat32 o ntsf
  • C’è che cerchi su internet e trovi le soluzioni più fantasiose al problema
  • C’è che poi ti accorgi che c’è una soluzione elegante efficiente e che comporta un minimo sforzo

Insomma tutta sta premessa per andare a vedere come sia possibile condividere in maniera semplice ed elegante partizioni (o cartelle) su filesystem ext3 su Ubuntu Linux. Vediamo come…

Il problema

Il filesystem ext3 a differenza di quelli provenienti dal mondo windows supporta la gestione dei permessi su file e cartelle per utente-gruppo-altri. Se vogliamo montare una partizione all’avvio del sistema possiamo agire sul file /etc/fstab aggiungendo una riga. Per questo tipo di filesystem non si può dare un’opzione per dire con che gruppo deve essere montata la partizione, cosa che invece è possibile fare, per esempio, su partizioni fat32 con l’opzione gid=id del gruppo.

Questo comporta che la partizione montata sarà associata ad utente (lettura e scrittura) e gruppo root e quindi sarà proibita la scrittura su di essa per l’utente comune.

La soluzione

La prima soluzione è quella di cambiare i permessi alla cartella principale una volta montata, infatti ext3 manterrà in memoria i permessi settati ed ogni volta che la partizione verrà montata si ritroverà con i permessi decisi in precedenza. Il problema di questa soluzione è che un utente può creare file e cartelle, ma una volta create solo l’utente in questione potrà modificarli perchè questi vengono creati con i permessi in lettura e scrittura per l’utente, lettura per gruppo principale dell’utente e per gli altri.

La soluzione definitiva (secondo me) consiste nell’utilizzo delle ACL (Access Control Lists), poco conosciute ma molto potenti, che in maniera elegante ci permettono di specificare un gruppo che può sempre avere accesso in lettura e scrittura su una certa cartella anche se i file dentro ad essa non appartengono al gruppo. Per fare questo, se non le abbiamo già nel sistema, installiamo le ACL, quindi apriamo un terminale e digitiamo:

sudo apt-get install acl

Sotto /media creiamo una cartella in cui andremo a montare la partizione che ci interessa condividere.

cd /media
sudo mkdir data

Ora dobbiamo editare il file /etc/fstab per dire al sistema che all’avvio vogliamo che venga montata la partizione. Cerchiamo l’UUID della partizione

sudo vol_id /dev/sda3

se per esempio la nostra partizione corrisponde a /dev/sda3. Copiamo l’UUID ed editiamo /etc/fstab e aggiungiamo una riga in fondo al file

UUID=4a1d77ca-fec7-4db9-a46d-7c71850d6c14 /media/data   ext3    defaults,acl 0 0

Salviamo e montiamo la partizione

sudo mount -a

Ok ora ci troviamo con la cartella /media/data in cui è montata la partizione. Andiamo a definire le regole ACL

sudo setfacl -Rm d:g:users:rwx /media/data

  • setfacl -m (modify) crea le regole acl e con l’opzione R agiamo su tutte le sotto cartelle di /media/data.
  • d:g:users:rwx significa che la regola di default (d), che è applicata ad ogni elemento dentro /media/data, è: il gruppo (g) users ha permessi di lettura, scrittura, esecuzione.

A questo punto non ci rimane che associare al gruppo users tutti gli utenti che devono avere accesso alla partizione comune (lo potete fare anche da interfaccia grafica Sistema->Amministrazione->Utenti e gruppi).

Per vedere se ad una cartella è applicata una qualche regola ACL basta fare un

ls -l

otterremo qualcosa del tipo:

-rwxr--r--+ 1 bato bato 317068 2008-11-30 19:23 pippo.jpg

il + in fondo ai permessi ci dice che a questo file è applicata una regola ACL. La cosa figa è che anche se il gruppo è bato con permessi solo in lettura, un qualsiasi utente facente parte del gruppo users potrà andare a leggere, modificare o cancellare il file pippo.jpg.

Per poi identificare la regola basta digitare:

getfacl /media/data/pippo.jpg

getfacl pippo.jpg
# file: pippo.jpg
# owner: bato
# group: bato
user::rwx
group::rwx
group:users:rwx
mask::rwx
other::r–

Come si vede anche se il gruppo proprietario è bato il gruppo users ha permessi di accesso e modifica (in rosso).

Bene, è tutto, buona condivisione!🙂

8 commenti leave one →
  1. claudio permalink
    26 dicembre 2008 20:32

    Bell’articolo complimenti…sai se esiste qualcosa di analogo per i filesystem reiserfs ?

    • 27 dicembre 2008 15:01

      Grazie per i complimenti!!
      Per quanto riguarda filesystem reiserfs purtroppo non ti so direi se è supportato qualcosa di analogo.

  2. Moreno permalink
    30 marzo 2009 12:19

    Grazie mille per questa guida chiara ed efficace! ho appena convertito delle partizioni vfat in ext3 sulla mia Mandriva (dopo che da tempo avevo abbandonato il dual boot con Windows) e mi stavo scervellando su umask e gruppi primari per poter ricreare l’effetto dell’opzione di mount umask=0 disponibile per vfat appunto.
    Questa è proprio la soluzione elegante che cercavo.

  3. 24 agosto 2013 21:06

    If some one needs expert view concerning
    running a blog after that i propose him/her to pay a visit this web site,
    Keep up the fastidious job.

  4. 6 ottobre 2013 9:51

    Wow, wonderful weblog structure! How lengthy have you ever been
    running a blog for? you made blogging glance
    easy. The full look of your web site is wonderful, let alone the content material!

  5. 22 gennaio 2014 13:56

    Hi, i think that i saw you visited my web site so i
    came to “return the favor”.I am trying to find things to improve my website!I suppose its ok to use a few of
    your ideas!!

  6. 28 gennaio 2014 10:48

    Pretty! This has been an incredibly wonderful post.

    Thank you for providing these details.

Trackbacks

  1. condividere-una-partizione-ext3-tra-piu-utenti « Davidepolimanti's Blog

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: