etckeeper
permite utilizar una herramienta de control de versiones
para registrar los cambios hechos en los ficheros del directorio /etc
.
Se pueden utilizar varias herramientas de control de versiones, como
Bazaar, Git, Mercurial o Darcs.
Aunque puede ser de gran ayuda tener un historial de los cambios en los
ficheros del directorio /etc
, no debemos olvidar que puede que se
estén copiando ficheros que deberían permanecer secretos, como por
ejemplo /etc/shadow
. Al repositorio sólo puede acceder el
administrador del sistema, pero deberemos tener en cuenta esto si, por
ejemplo, copiamos el repositorio.
Instalación
En este caso, utilizaremos Bazaar. Instalamos los paquetes necesarios:
$ sudo aptitude install etckeeper bzr
Configuración
Editamos el fichero /etc/etckeeper/etckeeper.conf
y comprobamos que la
siguiente línea no está comentada:
VCS="bzr"
Si utilizamos aptitude
, también podemos modificar el valor de
HIGHLEVEL_PACKAGE_MANAGER
:
HIGHLEVEL_PACKAGE_MANAGER=aptitude
Inicialización
Lo primero que hay que hacer antes que nada es inicializar el repositorio. Ejecutamos:
$ sudo etckeeper init
Del mismo modo, podemos dejar de usar el control de versiones y borrar toda la información guardada ejecutando:
$ sudo etckeeper uninit
Uso
Supongamos que acabamos de actualizar el fichero /etc/hosts
.
Para comprobar los archivos modificados ejecutamos:
$ sudo bzr status /etc
modified:
hosts
unknown:
X11/core
Para registrar (commit) los cambios ejecutamos:
$ sudo etckeeper commit "Updated hphosts"
Committing to: /etc/
modificado hosts
Committed revision 2.
Comprobar el historial de cambios, podemos especiar un directorio o un fichero concreto:
$ sudo bzr log /etc/hosts
------------------------------------------------------------
revno: 2
committer: karpoke
branch nick: localhost /etc repository
timestamp: Fri 2012-12-21 15:28:08 +0100
message:
Updated hphosts
------------------------------------------------------------
revno: 1
committer: karpoke
branch nick: localhost /etc repository
timestamp: Fri 2012-12-21 15:13:09 +0100
message:
Initial commit
Si queremos revertir los cambios, debemos especificar el número de versión al que queremos volver. También podemos especificar un directorio o un fichero:
$ sudo bzr revert --revision 2 /etc/hosts
Alertas y mensajes de error
etckeeper
está configurado por defecto para ejecutarse automáticamente
una vez al día y tras cada actualización, instalación o borrado de
paquetes del sistema. En este caso, es posible que, si no hay ningún
cambio en los ficheros de /etc
, nos aparezca un mensaje de error como
el siguiente:
bzr: ERROR: No changes to commit. Please 'bzr add' the files you want to commit, or use --unchanged to force an empty commit.
Si queremos evitarlo, basta editar la siguiente línea en el fichero de configuración:
BZR_COMMIT_OPTIONS="--unchanged"
Avisos de rkhunter
Si tenemos instalado rkhunter, podemos añadir las siguientes líneas al fichero de configuración para evitar que nos lleguen avisos de los ficheros y directorios utilizados por etckeeper:
ALLOWHIDDENDIR="/etc/.bzr"
ALLOWHIDDENFILE="/etc/.etckeeper"
ALLOWHIDDENFILE="/etc/.bzrignore"
Referencias
» Using Version Control For Your /etc Directory With etckeeper And Bazaar On Debian Squeeze