Pinguini coinquilini: condividere la home (o una partizione) su GNU/Linux

A gentile richiesta di Qwertyminus, fresco utente GNU/Linux, in un commento qui, un onnicomprensivo tutorial su come far diventare coinquilini due pinguini, mettendo in comune la /home (o un’altra partizione). Perché i ggiovani vanno incoraggiati e supportati.


Home – Iconarchive.com

L’utente “qwerty” sul sistema “Linux-1” può condividere la propria cartella home (/home/qwerty) o una partizione dedicata in diversi modi:

  1. con un utente con lo stesso nome su un altro sistema installato su disco (“Linux-2”)
  2. con un altro utente (che chiamerò “minus”) sullo stesso sistema “Linux-1” o su “Linux-2”

Nomi utente scelti assolutamente a caso, eh!😉

#1: Due pinguini, un sol padrone

Il primo caso è il più semplice ed il più probabile, su un pc domestico con un solo utente. Supponiamo di partire da zero, disco vuoto ed installazione fresca del primo pinguino. Per prima cosa creiamo un adeguato partizionamento del disco, in modo da avere una partizione / per ogni installazione, una swap ed una /home che saranno entrambi condivise.

Ho inoltre già creato la partizione (chiamata con molta fantasia “Condivisa”) destinata ad essere usata da tutti i sistemi presenti nel caso (2). Questo passaggio si può ignorare se non è nostra intenzione dedicare una partizione apposita ad area comune.

Le dimensioni scelte per le partizioni sono puramente indicative. Se è presente un secondo disco si può scegliere di posizionarvi alcune partizioni; basterà poi individuarlo correttamente (tipicamente ci saranno sda e sdb) per far sì che ogni sistema punti alla partizione giusta sul disco giusto.

Schema di partizionamento

Ho preferito avviare in live la prima distribuzione scelta (Lubuntu) in modo da avere a disposizione uno strumento più completo e facile da usare per il partizionamento (qui c’è Gparted). È utile assegnare delle etichette alle partizioni in modo da poterle poi riconoscere più facilmente.

Fatto questo, si può procedere all’installazione del primo sistema, scegliendo la modalità di partizionamento manuale.

Tipo di installazione – partizionamento manuale

Questa scelta ci permette di definire l’utilizzo di ciascuna partizione (già preparata, ma si potrebbe fare il lavoro anche da qui). È sufficiente quindi selezionare la partizione desiderata e cliccare su “Modifica…”.

Selezione partizione

In questo modo si assegna il punto di montaggio di ciascuna partizione: /dev/sda1 sarà la / del primo sistema, /dev/sda5 la swap e /dev/sda4 la /home. Per ora lasciamo stare le altre due. Avendo preparato il disco all’inizio, possiamo evitare di spuntare la casella relativa alla formattazione (che è già avvenuta): ignoriamo coraggiosamente i messaggi dell’installer che ci suggerisce di formattare per non confondere i dati nuovi con i vecchi (tanto il disco è vuoto, vero?). Attenzione soprattutto a non formattare la futura /home se questa contiene i dati utente preservati da una precedente installazione.

Scelta mount point

L’installazione procede con le solite domande (ora, data, lingua, etc.) finché non si arriva alla scelta del nome utente e del nome computer (hostname). Il nome utente è la chiave per condividere una partizione: nella seconda installazione basterà infatti scegliere lo stesso nome utente per avere accesso ai dati. A proposito, anche l’hostname è scelto quasi a caso.

Nome utente e computer

Il meno è fatto: sistemato il primo pinguino, riserveremo esattamente lo stesso trattamento al secondo (partizionamento manuale, scelta dei mount point, etc.). Conclusa anche la seconda installazione non dobbiamo fare altro. All’avvio di ciascun sistema ci troveremo la nostra home utente (la stessa) con pieno accesso ai file, dato che per entrambi siamo “la stessa persona”. Niente alchimie da terminale o voodoo di configurazioni.

E la partizione “Condivisa”? Anche quella potrebbe fungere da spazio comune tra più sistemi, a mio parere in modo anche più “pulito” della /home. La /home infatti contiene anche i file di configurazione di alcuni programmi (di sistema, come il terminale, o installati dall’utente) e tali file sono nascosti (il loro nome inizia con un “.”). Da terminale il comando “ls -a” elenca anche questi file, e la /home ad un tratto si fa molto più popolata di quanto non sembri:

qwerty@scrilepecia:~$ ls -a
.              .dbus      Modelli                    .vboxclient-display.pid
..             .dmrc      Musica                     .vboxclient-seamless.pid
.bash_history  Documenti  .profile                   Video
.bash_logout   .gconf     Pubblici                   .Xauthority
.bashrc        .gnome2    Scaricati                  .xscreensaver
.cache         .gvfs      Scrivania                  .xsession-errors
Condivisa      Immagini   .thumbnails                .xsession-errors.old
.config        .local     .vboxclient-clipboard.pid

Il rischio (magari minimo, ma pur sempre presente) è che entrambi i sistemi modifichino gli stessi file di configurazione relativi ad un componente comune. In questo senso la partizione separata ci metterà al riparo da quest’eventualità perché conterrà solo dati: basterà indirizzare qui gli scaricamenti via browser e torrent, le importazioni di immagini e tutto quello che “fa peso” su disco. Aggiungo che, così facendo, le /home potrebbero essere ridotte a dimensioni di pochi GB per contenere solo qualche file in attesa del proprio destino.🙂

#2: Due pinguini, uno o due padroni ed uno sgabuzzino in comune

Consideriamo ora il secondo caso, in cui si impostino utenti diversi sui due sistemi oppure si voglia riservare uno spazio apposito ai dati da condividere. Per queste eventualità ho anche seguito i suggerimenti di un tutorial su Linuxuser.

Come prima, se abbiamo a che fare con lo stesso utente sui due sistemi, i problemi di accesso ai file sono automaticamente annullati. È sufficiente creare una cartella da usare come punto di montaggio per la partizione e far sì che questa sia attivata all’avvio. La cartella in questo caso può essere convenientemente creata nella home utente:

$ mkdir ~/Condivisa

Quindi ricaviamo l’UUID della partizione (è /dev/sda6):

$ blkid

Creazione mount point per la partizione condivisa

Infine modifichiamo il file /etc/fstab (copiamo prima l’UUID di sda6) con

$ sudo nano /etc/fstab

inserendo la riga relativa a questa partizione (l’UUID ottenuto va senza virgolette) ed un opzionale commento (# …):

# Partizione condivisa sda6
UUID=343cc807-0e12-4b61-a926-aa89653597de /home/qwerty/Condivisa ext4 user,defaults 0 0

Salvato fstab e montata la partizione (comando “mount -a”) ce ne dovremo “riappropriare” (con “chown”) dato che sarà diventata di proprietà dell’utente root:

$ sudo mount -a
$ ls -ld Condivisa/
drwxr-xr-x 3 root root 4096 ott 31 23:37 Condivisa/
$ sudo chown -R qwerty:qwerty Condivisa
$ ls -ld Condivisa/
drwxr-xr-x 3 qwerty qwerty 4096 ott 31 23:37 Condivisa/

Vediamo infine come rendere accessibile un’area dati comune sia a “minus” su “Linux-2” sia a “qwerty” su “Linux-1”, ora che non sono più la “stessa persona”. I cambiamenti rispetto a quanto appena descritto sono pochi.

Innanzitutto il punto di mount starebbe meglio posizionato fuori dalla home utente (ma solo per visibilità e comodità). A questo scopo si usa di solito la cartella /mnt, nella quale si creano i mount point per le partizioni aggiuntive “extra” montate ad ogni avvio (ad esempio dischi aggiuntivi per dati e backup):

$ sudo mkdir /mnt/Condivisa

La riga nel file /etc/fstab rifletterà questa prima differenza:

# Partizione condivisa sda6
UUID=343cc807-0e12-4b61-a926-aa89653597de /mnt/Condivisa ext4 user,defaults 0 0

Mettiamo ora a posto l’accesso agli utenti di entrambi i sistemi, riprendendo l’output di uno dei precedenti comandi:

drwxr-xr-x 3 qwerty qwerty 4096 ott 31 23:37 Condivisa/

che ci diceva che Condivisa è una directory (d) nella quale il proprietario ha diritti di lettura, scrittura, esecuzione (rwx), il gruppo e tutti gli altri utenti hanno diritti di sola lettura ed esecuzione (r-xr-x). Il proprietario è qwerty il cui gruppo principale è qwerty.

La soluzione “quick and dirty” per garantire anche i permessi di scrittura (aggiungere/rimuovere/modificare file) a tutti gli utenti nella cartella Condivisa è semplice:

$ sudo chmod -R a+w /mnt/Condivisa

E questo è tutto. Trattandosi di una soluzione per utenza domestica, senza requisiti di accesso simultaneo di più utenti alla condivisione e protezione dei dati, mi sembra più che sufficiente.


Come sempre domande, suggerimenti e correzioni sono bene accetti. Spero di essere stato chiaro e di non aver fatto errori malgrado la lunghezza dell’opera, motivo per cui tento una sintesi finale, in ordine di “difficoltà”:

User/Sistema Condivisione Operazioni necessarie Note
user1/Linux-1
user1/Linux-2
/home/user1 Partizionamento manuale
(/home separata)
Stesso username
Partizione dedicata Partizionamento manuale
Creazione mount point
Modifica fstab
Modifica proprietario cartella (chown)
user1/Linux-1
user2/Linux-1
Partizione dedicata
(consigliata)
Partizionamento manuale
Creazione mount point
Modifica fstab
Modifica proprietario cartella (chown)
Modifica permessi cartella (chmod)
Soluzione adattabile a
diversi casi (multiutenza)
user1/Linux-1
user2/Linux-2

Così la prossima volta, caro Qwerty, impari a non fare domande di cui non vuoi sapere la luuuunga risposta!

Informazioni su Man from Mars

https://extendedreality.wordpress.com/

  1. icittadiniprimaditutto

    Reblogged this on i cittadini prima di tutto.

    Mi piace

  2. Pingback: Roommates penguins: sharing home (or a partition) in GNU/Linux « Extended Reality

  3. Grazie mille anche qui, e perdonami per il colpevole (un bel mesetto) ritardo. Devo avere un problema con le notifiche di WordPress. Non avessi visitato la tua pagina di twitter, non me ne sarei mai accorto (ormai io e i blog siamo separati in casa .-.). Grazie ancora, non vedo l’ora di provare quel Fedora che ti dicevo.

    Mi piace

    • No problem, l’importante è che la procedura sia chiara e che non ti scoppi niente mentre armeggi con le partizioni🙂
      Un consiglio: installa prima la distribuzione che vuoi provare (e che quindi presumibilmente rimuoverai prima o poi). Così il bootloader di quella che userai stabilmente sovrascriverà il primo e resterà intatto quando farai pulizia.

      Mi piace

Dimmi che ne pensi o fai "Ciao ciao!" con la manina // Share your thoughts or just say "Hello!"

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: