Un po di privacy e pulizia non guastano mai

Girando la rete in cerca di idee da usare con bash mi è
venuta un piccola idea su come eliminare tutta l’immondizia
che i vari programmi lasciano nella home, pensate ad Adobe
Flash Player.

Quello che ne è venuto fuori è uno script da mettere in
/etc/init.d ed il suo file di controllo in /etc/sysconfig

Una spiegazione terra terra e molto incasinata: :frowning:

-1) studiatevi attentamente i due file e poi…

  1. un solo nome per tutto,
    il ramdisk viene creato in /privacy
    i due file si chiamano: privacy

  2. nel file di controllo inserite solo la riga delle
    dimensioni del ramdisk

  3. attivate il servizio

  4. popolate il ramdisk
    ad es:
    per poter inserire il percorso /home/pippo/.adobe

    • mkdir -p /privacy/pippo/.adobe
    • cd ~pippo
    • rm -rf .adobe
    • ln -s /privacy/pippo/.adobe
  5. inserire i dati necessari nel file di controllo

  6. divertitevi un po e… quanta sporcizia, e quanti dati riservati si vedono

  7. chiudete i vari programmi e fermate/riattivate il
    servizio e… :slight_smile:

da questo momento ad ogni accensione del sistema viene
creato il ramdisk e popolato di conseguenza e ad ogni
spegnimento viene fatta pulizia.

un parola per le righe con il flag ‘r’, alcuni programmi
mettono i dati temporanei e i file di configurazione tutti
assieme, percui non è il caso di usare il ramdisk ma con
queste righe è possibile cancellare questi dati preservando
i file di configurazione.

e adesso divertitevi.

il file di controllo è fatto cosi (/etc/sysconfig/privacy):

#--------------------------------------------------------
#con questa riga viene indicata la dimensione del ramdisk
#--------------------------------------------------------
RAMDISK=1024m
#--------------------------------------------------------
# tutte le righe con il secondo campo uguale a 'c'
# indicano directory/file che verranno creati nel ramdisk
#
# il formato della riga è:
#
# user:c:nome:tipo
#
# il tipo può essere 'd' per directories o 'f' per file
#--------------------------------------------------------
pippo:c:.adobe:d
pippo:c:.macromedia:d
pluto:c:.adobe:d
pluto:c:.macromedia:d
#--------------------------------------------------------
# tutte le righe con il secondo campo uguale a 'r'
# indicano directory/file che verrano rimossi dal disco
#
# il formato della riga è:
#
# user:r:percorso:nome:tipo
#
# il tipo può essere 'd' per directories o 'f' per file
#--------------------------------------------------------
# tutti i path sono relativi alla home dell'utente
#
# es:
#    .gftp     al posto di    /home/user/.gftp
#--------------------------------------------------------
pippo:r:.gftp:cache:d
pluto:r:.mozilla/firefox/hutdvk36.default:Cache:d

e questo è lo script del nostro servizio di pulizia
(/etc/init.d/privacy)

#!/bin/bash
# Enable user privacy
#
# chkconfig: 35 99 00
# description: Initialize/destroy user private data
# processname: privacy
### BEGIN INIT INFO
# Provides: privacy
# Required-Start:
# Required-Stop:
# Default-Stop: 0 1 2 6
# Default-Start: 3 5
# Short-Description: Initialize/destroy user private data
# Description: Initialize/destroy user private data
### END INIT INFO

 ! -r /etc/sysconfig/privacy ] && exit

PRIVACY=/etc/sysconfig/privacy
RAMDISK=$(grep RAMDISK /etc/sysconfig/privacy | sed -e 's/RAMDISK=//')

create() {
	      local user=$1
	      local name=$2
	      local type=$3

	      cd /privacy
	      mkdir $user
	      chmod 700 $user
	      cd $user
	      case "$type" in
	          d) mkdir -p $name ;;
		  f) mkdir -p `dirname $name` ; touch $name ;;
		  *) echo error
	      esac
	      cd ..
	      chown -R $user.$user $user
	 }

destroy() {
	      local user=$1
	      local path=$2
	      local name=$3
	      local type=$4

	      home=$(grep $user /etc/passwd | awk -F':' '{ print $6; }')
	      cd $home/$path
	      case "$type" in
	          d) rm -rf $name
		     mkdir $name
		     chown $user.$user $name
		     ;;
		  f) cp /dev/null $name ;;
		  *) echo error
	      esac
	 }

start() {
	     ! -e /privacy ] && mkdir /privacy
	    mount -t tmpfs -osize=$RAMDISK tmpfs /privacy

	    for p in $(grep ":c:" $PRIVACY)
	    do
		create $(echo $p | awk -F':' '{ print $1" "$3" "$4; }')
	    done
	}

stop() {
	    umount /privacy
	    for p in $(grep ":r:" $PRIVACY)
	    do
		destroy $(echo $p | awk -F':' '{ print $1" "$3" "$4" "$5; }')
	    done
       }

case "$1" in
	start) start ;;
	stop) stop ;;
	*) ;;
esac

…l’idea non è niente male. Tuttavia, non sarebbe più semplice mettere bleachbit in automatico?

[quote=Fda]
…l’idea non è niente male. Tuttavia, non sarebbe più semplice mettere bleachbit in automatico?[/quote]

Concordo, io uso bleachbit in modalità root puoi recuperare 300 mb eliminando immondizia, in modalità normale fai la pulizia classica, tuttavia consiglio di impostare i browser affinche eliminino la cache completamente alla chiusura. :slight_smile:

eh, ma non cancella la cache di flash…comunque è comodo anche quello, vero.

ps. con Bleachbit, 300 mb sono bruscolini. Eliminando le traduzioni inutili (ad es. non me ne faccio nulla di empathy in turco!) sono arrivato anche a punte di 800mb - 1gb.

si dipende dalle impostazioni infatti, io ogni tanto uso anche ‘libera spazio su disco’ ma ci mette 10 minuti :slight_smile:

…mi avete rovinato le ferie, assassini :frowning:

tanto per cambiare, ho scoperto l’acqua calda :wall:

comunque l’idea di usare i file xml è ottima.

fda

ciao

R.