software,

Come gestire i permessi dei dischi esterni del Mac

Sabino Maggi Sabino Maggi Segui 9-Aug-2017 · 7 minuti di lettura
Condividi

Come ho già scritto più volte su questo blog, il mio iMac di casa è un modello del 2008 a cui la semplice aggiunta di un disco esterno SSD ha dato nuova vita, rendendolo ancora perfettamente usabile per i normali usi casalinghi, nonostante un’età ormai quasi veneranda.

Pur essendo abituato ad usare macchine piuttosto potenti (e recenti), non noto grosse differenze nell’uso normale dell’iMac di casa, che non mostra mai (o quasi mai) quei rallentamenti che ci si aspetterebbero dalla sua età.

Con il passare del tempo però sia il disco SSD esterno, usato per il sistema operativo e le applicazioni, che il disco meccanico interno, con i documenti miei e delle mie figlie (mia moglie da un anno ha un Air personale), si sono riempiti fino all’orlo, costringendomi a continue acrobazie per cercare di tenere tutto a posto.

Inoltre, un disco SSD troppo pieno inizia a rallentare e diventa inefficiente, come era diventato chiaramente avvertibile negli ultimi mesi.

Vincendo la mia abituale pigrizia (aggravata dal caldo assassino di questa estate), ho quindi deciso di aggiungere non uno ma due dischi esterni USB che avevo in casa, cercando anche di razionalizzare la distribuzione dei file fra i vari dischi.

Nessun problema per questo, a colpi di collegamenti simbolici (per i documenti normali) e di alias (per i file di iTunes) è facile dare l’impressione che i tutti file risiedano su un unico disco.

I dischi esterni presentano un problema più serio, perché con la configurazione normale qualunque utente può accedere a tutti i file presenti sul disco.

Il sistema operativo del Mac, infatti, gestisce in modo corretto i permessi di accesso del disco di sistema (quello su cui è installato macOS/OS X per intenderci) e dei dischi interni, ma configura i dischi esterni collegati alle interfacce USB e Thunderbolt (o alla Firewire, per chi ce l’ha ancora) in modo da ignorare i proprietari dei file presenti sul disco.

Tutto ciò rende più semplice usare le chiavette USB o i dischi portatili per scambiare file fra più computer, ma rende allo stesso tempo molto più complicato proteggere i file privati presenti su un disco esterno.

Se il Mac è usato da una sola persona non ci sono grossi problemi, tutti i file presenti sui dischi (interni ed esterni) sono sempre di sua proprietà.

Ma quando più persone usano lo stesso Mac le cose cambiano: i file tenuti sul disco esterno possono essere letti, riscritti o perfino cancellati per errore da uno qualunque degli utenti del Mac, indipendentemente dal fatto che siano suoi o no. È vero che c’è Time Machine, ma è sempre meglio evitare di sfidare la sorte e prevenire i danni, piuttosto che cercare una cura quando i danni sono stati fatti.

Mettere le cose a posto però è leggermente più complicato di quanto ci si potrebbe aspettare.

La prima cosa da fare, naturalmente, è disattivare l’opzione “Ignora proprietari dei file sul volume” in ciascun disco esterno. Per farlo, basta fare click con il tasto destro sull’icona del disco e selezionare la voce “Ottieni informazioni” (oppure selezionare l’icona del disco e premere Command-I). Compare una finestra che contiene le informazioni fondamentali relative al disco scelto. Qui bisogna cliccare sull’icona del lucchetto in basso a destra, autenticarsi come amministratore e togliere il segno di spunta accanto all’opzione “Ignora proprietari dei file sul volume”. Per essere sicuri di applicare la nuova configurazione basta espellere e ricollegare il disco esterno (non sono sicuro al 100% che serva veramente ma non fa male di certo).

Purtroppo, se facciamo solo questo non risolviamo nulla, chiunque continuerà a poter accedere a tutti i file del disco esterno. Basta guardare dal Finder (o dal Terminale) i permessi del disco esterno: all’utente che sta usando il Mac vengono ancora attribuiti permessi di lettura e di scrittura su tutto il disco, e questi potrà quindi continuare a scorazzare per ogni dove senza problemi.

Per risolvere il problema definitivamente dobbiamo creare sul disco esterno una cartella per ciascun utente del Mac, dandole lo stesso nome dell’utente per renderla immediatamente riconoscibile, e fare in modo che ciascun utente venga confinato ad accedere ai soli file presenti nella cartella di sua proprietà.

Supponendo che il disco esterno sia Dati HD e che sul Mac ci siano due utenti diversi, io (amministratore del Mac) e tu (utente normale), facciamo doppio click sull’icona del disco esterno e creiamo dal Finder le due cartelle corrispondenti.

Tutto il resto della configurazione va fatto dal Terminale (che come sempre si trova in Applicazioni -> Utility), perché l’interfaccia grafica non è in grado di gestire queste finezze da nerd. Non spiegherò in dettaglio tutti i passaggi, se lo facessi l’articolo diventerebbe una lunga e noiosa lezione sui permessi nei sistemi Unix, perdendo di vista l’obiettivo principale dell’articolo.

Lanciamo quindi il Terminale e spostiamoci nel nostro disco esterno

$ cd "/Volumes/Dati HD"/

dove sono presenti le due cartelle io e tu che abbiamo appena creato dal Finder

$ ls -l
total 24
drwxr-xr-x  6 io  staff    204 Aug  2 19:28 io
drwxr-xr-x  4 io  staff    136 Aug  2 19:29 tu

Questo vale per l’utente io. Se diventassimo l’utente tu, le cartelle presenti nel disco esterno ci apparirebbero così

$ ls -l
total 24
drwxr-xr-x  6 tu  staff    204 Aug  2 19:28 io
drwxr-xr-x  4 tu  staff    136 Aug  2 19:29 tu

dimostrando, come già detto, che vengono attribuite all’utente che sta usando il Mac in un dato momento.

Torniamo ad essere io, l’amministratore del Mac e proviamo a guardare le cartelle presenti nel disco esterno dal punto di vista dell’amministratore supremo del Mac (l’utente root, che impersoniamo temporaneamente ogni volta che eseguiamo un comando del Terminale facendolo prependere da sudo)

$ sudo ls -l 
total 24
drwxr-xr-x  6 _unknown  _unknown    204 Aug  2 19:28 io
drwxr-xr-x  4 _unknown  _unknown    136 Aug  2 19:29 tu

Che succede? Le due cartelle vengono attribuite ad un utente sconosciuto (_unknown) proprio perché non appartengono di fatto né a io né a tu, ma sono di uno o dell’altro a seconda delle circostanze.

Ora mettiamo finalmente a posto le cose. Bastano quattro comandi

$ sudo chown io:staff io
$ sudo chown tu:staff tu

$ sudo chmod +a "everyone deny delete" io
$ sudo chmod +a "everyone deny delete" tu

con i primi due si forza macOS ad attribuire sempre la cartella io presente sul disco esterno all’utente omonimo (e a fare la stessa cosa per l’utente tu), mentre gli altri due attivano gli stessi attributi estesi (informazioni aggiuntive associate ad un file o ad una directory) associati di default alle cartelle dei dischi interni del Mac.

Controlliamo che anche per l’amministratore supremo del Mac le due cartelle siano ora attribuite ai due diversi utenti del Mac

$ sudo ls -l
total 24
drwx------+  6 io  staff       204 Aug  2 19:28 io
drwx------+  4 tu  staff       136 Aug  2 19:29 tu

e che siano a posto anche gli attributi estesi

$ sudo ls -le
total 24
drwx------+  6 io  staff       204 Aug  2 19:28 io
 0: group:everyone deny delete
drwx------+  4 tu  staff       136 Aug  2 19:29 tu
 0: group:everyone deny delete

e abbiamo finito.

Da ora in poi ogni utente potrà fare quello che uole nella sua cartella del disco esterno ma non potrà né ficcanasare né soprattutto fare danni in quelle degli altri utenti del Mac.

Spero sia tutto chiaro. Se non lo è potete sempre usare i commenti per chiedere ulteriori dettagli (o magari insultarmi).

Sabino Maggi
Pubblicato da Sabino Maggi Segui
Commenti

Aggiungi un commento