Newsgroup: it.comp.os.linux.iniziare
Titolo: rsync = restore home partition ad ogni logout or reboot

Ciao a Tutti, 
una biblioteca mi ha chiesto un’aiuto da volontariato e cioè sistemare 4 
computer datati per gli utenti, giovani e adulti, installando software 
libero. Visto le caratteristiche dei PC (vedi sotto) pensavo ad una 
Lubuntu o ad una Xubuntu, con doppia partizione (/ e home). 
Fin qui tutto ok.
 
Gli studenti utilizzano questi pc per le loro ricerche scolastiche, 
mentre gli adulti scaricano principalmente le loro fatture domestiche 
(dati personali), le buste paga (dati personali) e anche le analisi 
mediche (dati sensibili). 
Entrambi,  a fine sessione, *NON puliscono/cancellano* i loro file e 
quindi il tutto rimane nelle cartelle della Home, che man mano si riempie 
di contenuti vari, che non dovrebbero essere visti, dagli utenti 
successivi.
 
Pensavo quindi ad una procedura automatica, che ad ogni Log-out o Reboot 
della macchina, attiva uno script, che ripristina la home alle condizioni 
iniziali, simile ad una fresh install.
 
Ho trovato in internet questi post, che mi piacciono molto, ma dopo le 
prime prove, non riesco ad andare avanti e cioè anche cercando in 
internet i codici errore, non riesco a risolvere.
http://ubuntu.5.x6.nabble.com/ripristino-impostazioni-kde-con-script-
 
crontab-td242044.html
 
https://it.ccm.net/faq/773-script-all-avvio-e-all-arresto-di-ubuntu
 (non 
ancora testato)
 
Configurazioni
 
Computer:
Pentium 4 – dual core;
Ram 4 Gb
 
Partizioni:
/ con Home separata
 
Accounts
Administrator
navigazione (utente standard, con password impostata, ma non richiesta al 
login)
 
Il primo problema che riscontro è al backup della home, non riesco a 
copiare la home in var/ripristino/ (partizione separata). Per costruire 
la directory "ripristino" devo diventare root (sudo caja) [sto 
effettuando prove a casa (utilizzando Ubuntu Mate 16.04) - dovute alla 
clausura forzata].
 
Qualcuno di voi, ha qualche esperienza in merito. 
Ringrazio anticipatamente per qualunque risposta positiva.
 
Nemo


Dimenticavo, questi sono i comandi estrapolati dal primo link:
 
# BACKUP HOME USER
rsync -av /home/navigazione/ /var/ripristino/ 
 
# RESTORE HOME USER
# -a, --archive        archive mode; equals -rlptgoD (no -H,-A,-X)
# -v, --verbose        increase verbosity
# --delete             delete extraneous files from dest dirs
rsync -av --delete /var/ripristino/ /home/navigazione/ 

Il 23/04/20 08:05, Nemo ha scritto:

Devi essere per forza root se vuoi scrivere in una directory non 
accessibile agli users.
La directory ripristino va creata come root, mentre lo script di backup 
che scrivera' in /var/ripristino verra' lanciato in crontab con user root.
Poi non dovresti salvare tutta la /home ma la /home/user (o ciascuna 
directory degli user separatamente) perche' in /home ci sono directory 
riservate.
 
angelo

 iniziali, simile ad una fresh install.
 
Non conosco le due distribuzioni che citi ma se sono dei sistemi linux 
io ti consiglio di pensare da amministratore di sistemi unix.
 
Puoi creare tanti account per il personale ed uno o più account per gli 
studenti.  Ogni account avrà la propria directory /home/xxxx a cui potrà 
accedere con la propria password e potrai assegnare un certo spazio 
(quota), superato il quale dovrà necessariamente fare pulizia.
 
Nessun diritto di root agli utenti che potranno gestire solo quanto 
contenuto all'interno della propria directory o di /tmp, /var/tmp che il 
sistema provvede a ripulire periodicamente.
 
In questo modo potrai garantire sia la privacy che l'utilizzo corretto 
dello spazio.
 
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   < 
http://giovanni.homelinux.net/
 >

 iniziali, simile ad una fresh install.
 
Guarda, sono il primo che subisce il fascino di script e smanettamenti
vari, ma hai detto che vuoi utilizzare Lubuntu o Xubuntu?
 
Basta usare una Guest Session (già di default): se non salvano i loro
file su supporto esterno (es. chiavetta USB) al prossimo login ritrovano
tutto pulito.
 
Oppure, come ti hanno già suggerito, puoi creare tanti utenti diversi
con delle quote disco assegnate.
 
Personalmente, fossi nella tua condizione, userei le Guest Session: sono
PC di una biblioteca, è normale che non sia permesso il salvataggio
permanente dei dati utente su disco.

 tutto pulito.
 
+1
 
bye,
 
-- 
 
piergiorgio

 angelo
 
Ciao Angelo, ... sono ancora in debito con te con lo script di backup sul 
Nas!
 
Oggi pomeriggio ho fatto diverse prova.
 
Ho sperimentato che non è possibile copiare/incollare/creare/eseguire 
comandi nel files-system senza essere root.
 
Per cui ho fatto tutto manualmente. Mi sono loggato come root e nella 
directory /var ho creato la cartella "ripristino" a questo punto ho 
copiato manualmente le seguenti cartelle e file dell'utente /home/
navigazione:
 
#------------------------------------------------
.bash_history
.bash_logout
.bashrc
.dmrc
.ICEauthority
.profile
.sudo_as_admin_successful
.Xauthority
.xsession-errors
.xsession-errors.old
 
.cache/
.config/
.config/caja/
.config/caja/desktop-metadata
.config/dconf/
.config/dconf/user
 
Documenti/
Immagini/
Modelli/
Musica/
Pubblici/
Scaricati/
Scrivania/
Video/
#------------------------------------------------
inoltre ho inserito 2 ulteriori file: 
File: include.lst
tutte le stringhe tra i due cancelletti (#)
 
File: exclude.lst
exclude.lst
include.lst
 
Quindi mi sono disconnesso da root
 
e ho costruito il file restore-home.sh in questo modo
 
#!/bin/bash
# RESTORE HOME USER
# -a, --archive           archive mode; equals -rlptgoD (no -H,-A,-X)
# -v, --verbose           increase verbosity
# --delete                delete extraneous files from dest dirs
 
rsync -av --include-from '/var/ripristino/include.lst' --exclude-from='/
var/ripristino/exclude.lst' --delete /var/ripristino/Documenti/ /home/
navigazione/Documenti/
rsync -av --include-from '/var/ripristino/include.lst' --exclude-from='/
var/ripristino/exclude.lst' --delete /var/ripristino/Immagini/ /home/
navigazione/Immagini/
rsync -av --include-from '/var/ripristino/include.lst' --exclude-from='/
var/ripristino/exclude.lst' --delete /var/ripristino/Modelli/ /home/
navigazione/Modelli/
rsync -av --include-from '/var/ripristino/include.lst' --exclude-from='/
var/ripristino/exclude.lst' --delete /var/ripristino/Musica/ /home/
navigazione/Musica/
rsync -av --include-from '/var/ripristino/include.lst' --exclude-from='/
var/ripristino/exclude.lst' --delete /var/ripristino/Pubblici/ /home/
navigazione/Pubblici/
rsync -av --include-from '/var/ripristino/include.lst' --exclude-from='/
var/ripristino/exclude.lst' --delete /var/ripristino/Scaricati/ /home/
navigazione/Scaricati/
rsync -av --include-from '/var/ripristino/include.lst' --exclude-from='/
var/ripristino/exclude.lst' --delete /var/ripristino/Scrivania/ /home/
navigazione/Scrivania/
rsync -av --include-from '/var/ripristino/include.lst' --exclude-from='/
var/ripristino/exclude.lst' --delete /var/ripristino/Documenti/ /home/
navigazione/Documenti/
rsync -av --include-from '/var/ripristino/include.lst' --exclude-from='/
var/ripristino/exclude.lst' --delete /var/ripristino/Video/ /home/
navigazione/Video/
 
rm -rf  ~/*.*	# Cancella solo i Files e NON le Cartelle nella HOME/User
rm -rf  ~/Cestino/*
rm -rf ~/.local/share/Trash/files/*
 
 
a questo punto dal terminale dell’utente /home/navigazione ho lanciato lo 
script ./restore-home.sh e ha *pulito tutto* come se fosse una nuova 
installazione. Perfetto!!
 
Ora si tratta di eseguire lo script  all'avvio, all'arresto e al 
riavvio,possibilmente anche al logout, ma ho un dubbio. 
Posizionando lo script nella partizione del filesystem, mi pulisce la home 
di tutti gli accout?
E cioè Account Administrator e Account navigazione?
 
Nemo

 permanente dei dati utente su disco.
 
 
Penso non sia possibile utilizzare l’utente guest, perché tutte le 
personalizzazioni vengono perse, ad esempio
 
Firefox – addon ublock origin
Fierfox – impostazione di proxy
Pannello laterale con icone in stile unity
Aggiunta di stampanti
 
a meno che sia possibile agire su qualche file di configurazione per 
rendere persistente queste modifiche.

 Ciao Giovanni
 
 
Purtroppo gli utenti sono molti, è una biblioteca molto frequantata e 
quindi non è possibile aggiungere account ad libidum.
 
Ciao,
Nemo

 rendere persistente queste modifiche.
 
Non si capisce bene il problema.
 
Se /home/XXX deve essere ripulito, sara`
ripulito per tutto o per niente.
Incluse le personalizzazioni.
 
bye,
 
-- 
 
piergiorgio

 rendere persistente queste modifiche.
 
L'utente Guest te lo puoi personalizzare come vuoi:
https://forum.ubuntu-it.org/viewtopic.php?t=609939
 
 

 
 
angelo


Grazie mille!!!
Non ho mai cercato come chiave di ricerca "Customize Guest Accout"
Ho sempre dato per scontato che era non modificabile.
Grazie!!!!
Nemo

 Incluse le personalizzazioni.
 
Le personalizzazioni dovrebbero restare permanenti.
Quello che mi hai scritto sopra è molto interessante.
Grazie!!
Nemo
 
 

 angelo
 
Ho implementato lo script, che ora è un pò lungo. Secondo te si può 
sintetizzarlo?
 
Grazie mille delle tue risposte e ... il mio debito aumenta :-)
Ciao,
Nemo
 
 
#!/bin/bash
 
#==================================================================================================
#rm -rf  ~/*.*		# Cancella solo i Files e NON le Cartelle nella 
HOME/User
 
shopt -s extglob    # enables extglob =  path/!(pattern-list) = Matches 
anything except one of the given patterns.
rm -rf ~/!(Scrivania|Documenti|Immagini|Musica|Scaricati|Video|Modelli|
Pubblici)
 
rm -rf  ~/Scrivania/*	# Cancella solo i Files e NON la Cartella
rm -rf  ~/Documenti/*	# Cancella solo i Files e NON la Cartella
rm -rf  ~/Immagini/*	# Cancella solo i Files e NON la Cartella
rm -rf  ~/Musica/*	# Cancella solo i Files e NON la Cartella
rm -rf  ~/Scaricati/*	# Cancella solo i Files e NON la Cartella
rm -rf  ~/Video/*	# Cancella solo i Files e NON la Cartella
rm -rf  ~/Cestino/*	# Cancella solo i Files e NON la Cartella
rm -rf ~/.local/share/Trash/files/*  # Cancella solo i Files e NON la 
Cartella
 
shopt -u extglob    # disables extglob
#==================================================================================================
# RESTORE HOME/User
# RSYNC

#==================================================================================================
 
 

 Grazie!!
 
Prego.
 
bye,
 
-- 
 
piergiorgio

 sintetizzarlo?
 
Per le operazioni ripetitive si possono usare due iterazioni:
 
for DD in Scrivania Documenti Immagini Musica Scaricati Video Cestino
do
	rm -rf  ~/$DD/*	
done
 
CMD="rsync -av --include-from /var/ripristino/include.lst 
--exclude-from=/var/ripristino/exclude.lst --delete /var/ripristino"
 
for DD in Scrivania Documenti Immagini Modelli Musica Pubblici Scaricati 
Scrivania Video
do
	$CMD/$DD/ /home/navigazione/$DD/
done
 
SE&O
 
angelo

 quindi non è possibile aggiungere account ad libidum.
 
Ragione in più per creare account separati per il personale (che 
immagino siano un numero ragionevole e stabile) e uno speciale per i 
frequentatori della biblioteca.


 angelo
 
Perfetto, funziona tutto!!
Grazie mille e alla prossima.
 
Un cordiale saluto, 
Nemo

 
 
:-)
 
angelo


FYI
 
https://elementaryos.stackexchange.com/questions/9069/how-can-i-have-the-
 
same-applications-in-the-dock-for-the-guest-session-as-i-have
 
Ho trovato una guida, spiegata in modo semplice. Questo era proprio 
quello che cercavo, anzi va oltre le mie aspettative, in quanto al logout, 
l’account Guest viene ripristinato alle condizioni iniziali!!
 
Naturalmente la procedura acquisita con Angelo non è da dimenticare, 
anzi  *Knowledge is the spice of life*.
Nemo

 anzi  *Knowledge is the spice of life*.
 
Anzi, è molto interessante. Ma personalmente, a parità di risultato, in
genere prediligo la soluzione che richiede meno tempo e impegno.
 
Non è economia, non è furbizia e neanche saggezza: è pigrizia.