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:
-1) studiatevi attentamente i due file e poi…
-
un solo nome per tutto,
il ramdisk viene creato in /privacy
i due file si chiamano: privacy -
nel file di controllo inserite solo la riga delle
dimensioni del ramdisk -
attivate il servizio
-
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
-
inserire i dati necessari nel file di controllo
-
divertitevi un po e… quanta sporcizia, e quanti dati riservati si vedono
-
chiudete i vari programmi e fermate/riattivate il
servizio e…
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