Cuando hacemos un backup de nuestro sistema probablemente muchos hacemos copias de nuestros archivos del home, pero tal vez no todos hacemos una copia de la partición root de nuestro sistema. De forma que comandos importantes guardados en el historial de root no los tenemos respaldados y pueden llegar a hacer falta cuando más se necesitan.
¿Quiénes deben hacer esto?
Cualquiera que reinstale constantemente y se le olvide rescatar las configuraciones de la partición root, los usuarios de Suicide Linux, cualquiera que haga cosas riesgosas o simplemente cualquiera que siempre quiera tener registrados los comandos que escribió en root.
Tengan en cuenta que la infomación contenida en el historial de root es verdaderamente confidencial y en ocaciones puede contener contraseñas de comandos o información que comprometa el sistema. Pueden aprovechar las ventajas de dropbox o software similar para que el respaldo se realize dentro de las carpetas que se sincronizan en la nube.
1.- Tener GPG instalado
Para el primer paso vamos a necesitar gpg, en muy probable que ya lo tengamos instalado.
2.- Configurar el script
Crearemos un nuevo archivo
sudo nano /root/backhisroot
Copien el script de abajo
#!/bin/sh --
LANG=C; LC_ALL=C; export LANG LC_ALL
TARGET="/root/.bash_history"
HASHFILE="/root/.bash_history.sha1"
FILEOUT=
PASSWORD=
[ -f "${HASHFILE}" ] || sha1sum "${TARGET}" > "${HASHFILE}"
sha1sum --status -c "${HASHFILE}" || gpg --batch --out "$FILEOUT" --passphrase "$PASSWORD" --symmetric "$TARGET" && sha1sum "$TARGET" > "$HASHFILE"
exit 0
Ahora en la línea de FILEOUT= después del signo de igual escriban la ruta de donde van a guardar el archivo de respaldo encriptado -con comillas-, es indispensabe usar rutas absolutas, por ejemplo /home/johnny/Dropbox/root.his
en la línea PASSWORD= escriban la contraseña con la que van a desencriptar el historial, naturalmente nunca usen la misma contraseña de root ni la de usuarios, no olviden poner comillas para evitar problemas.
Ahora guarden el script
3.- Añadir una tarea en cron
Casi todas las distros tienen a cron instalado por default, de hecho la única que he visto que no lo tiene es Gentoo, aunque es probable que el servicio de cron no sea iniciado por default en su distro.
Ejecuten:
]sudo crontab -e
Y añadan:
*/15 * * * * bash /root/backhisroot &> /dev/null
Consideren que todo el output es mandado a /dev/null para no llenarles sus registros, ya que cada 15 minutos va a revisar cualquier modificación al historial.
Desencriptar
gpg ruta-del-archivo
Fin del Post