Linux Guide e Trucchi

Ehi snap, dove sono i miei dati

Il punto di forza delle applicazioni snap è che sono autonome e isolate, con diversi livelli di confinamento. Questo meccanismo introduce tutta una serie di vantaggi in termini di sicurezza, che molte volte vengono confusi tra le persone che non hanno abbastanza familiarità con il loro funzionamento e comportamento all’interno della distribuzione. Con questo breve articolo, quindi, chiariremo alcuni malintesi sul modo in cui gli stessi snap gestiscono i dati di sistema e utente.
 * Installazione – Quando un utente installa uno snap dallo  Snap Store ( https://snapcraft.io/store ), accade quanto segue:
  * Lo strumento snapd viene utilizzato per installare/configurare/ripristinare/rimuovere i pacchetti snap;
  * Lo snap non è compresso e viene montato come filesystem di sola lettura nel percorso /snap.
 Un filesystem di sola lettura però non è sufficiente a fornire un’esperienza significativa e persistente, per questo motivo anche gli snap hanno parti scrivibili e sono:
  * SNAP COMMON – questa cartella è scrivibile dall’amministratore di sistema e viene utilizzata per memorizzare dati comuni a più revisioni dello snap;
  * SNAP DATA – viene anche utilizzato per archiviare dati, principalmente informazioni utilizzate da applicazioni e servizi in background, per la memorizzazione di attività che richiedono persistenza tra i lanci di snap. Questa cartella viene sottoposta a backup e quindi ripristinata durante l’esecuzione di un’operazione di aggiornamento istantaneo o ripristino. Al contrario, SNAP_COMMON non lo è.
 * Dati utente – Proprio come i dati di sistema, gli snap possono contenere dati utente in specifiche cartelle. Tuttavia, le cartelle riservate all’utente non verranno create finché l’utente specifico non avrà eseguito lo snap almeno una volta. In questo modo, avremo:
  * SNAP_USER_COMMON: questa cartella esegue il mapping dei dati utente tra le revisioni di uno snap;
  * SNAP_USER_DATA: Questa cartella conterrà tutti i dati utente che lo snap scrive nella home. Per impostazione predefinita, ogni snap utilizzerà un collegamento simbolico, che punterà all’ultima revisione disponibile.
 Occorre precisare che in questo caso esistono diverse eccezioni che occorre precisare, come:
  * Per impostazione predefinita, e come detto precedentemente, gli snap sono strettamente limitati, quindi non possono accedere a nessuna risorsa di sistema, dispositivi USB, fotocamera, audio, ecc. Gli utenti che desiderano concedere ai propri snap l’accesso a risorse specifiche devono utilizzare  specifiche interfacce ( https://docs.snapcraft.io/reference/interfaces?_ga=2.45808868.1753910719.1622282456-2092479680.1621154064 ), che consentono un accesso parziale a queste risorse. Per esempio, una delle risorse disponibili è la cartella home dell’utente, tenendo presente che i file nascosti non saranno accessibili per impostazione predefinita;
 * Cosa succede quando elimini uno snap? – Se decidi di rimuovere uno snap dal sistema, si avrà che:
  * Lo snap verrà smontato e non sarà più mostrato sotto /snap;
  * I dati nelle cartelle /var/snap/”nome snap”/ e /home/”username”/snap/ verranno eliminati. Tuttavia, una copia verrà conservata come snapshot per 30 giorni (tranne sui sistemi Ubuntu Core), consentendo di ripristinare i dati o recuperarli manualmente nel caso ne avessi bisogno. La cartella in cui verranno salvati gli snapshot è /var/lib/snapd/snapshots/.
 Per rimuovere uno snap senza generare uno snapshot basterà utilizzare l’argomento “–purge”, ad es.:
 $ sudo snap remove vlc –purge
La gestione dei dati degli snap è diversa dalle classiche convenzioni dei sistemi GNU/Linux e a tal proposito sia gli sviluppatori sia i normali utenti dovrebbero prestare attenzione alle piccole sfumature, in modo che possano ottenere la migliore esperienza di utilizzo.