Respuestas:
Para encontrar todos los archivos de configuración administrados de Debian que se han cambiado de forma predeterminada, puede usar un comando como este.
dpkg-query -W -f='${Conffiles}\n' '*' | awk 'OFS=" "{print $2,$1}' | md5sum -c 2>/dev/null | awk -F': ' '$2 !~ /OK/{print $1}'
Editar (funciona con sistemas localizados):
dpkg-query -W -f='${Conffiles}\n' '*' | awk 'OFS=" "{print $2,$1}' | LANG=C md5sum -c 2>/dev/null | awk -F': ' '$2 !~ /OK/{print $1}' | sort | less
Editar (funciona con paquetes con OK en el nombre del archivo):
dpkg-query -W -f='${Conffiles}\n' '*' | awk 'OFS=" "{print $2,$1}' | LANG=C md5sum -c 2>/dev/null | awk -F': ' '$2 !~ /OK$/{print $1}' | sort | less
md5sum --quiet
embargo, podría utilizar para evitar filtrar archivos OK con awk
(y por lo tanto, los problemas de localización?). Por cierto: ¿no sabes cómo incluir archivos sin seguimiento en / etc? ¿Como los de / etc / apache2 / sites-available por ejemplo?
debsums -ec
funciona realmente mi respuesta ( ), porque parece obtener muchos menos resultados que este.
debsums -ec
: si uso este método para reinstalar versiones de paquete , algunos de los archivos enumerados a través de este método no se cambian.
find /etc -type f \( -iname '*.ucf-dist' -o -iname '*.ucf-old' -o -iname '*.dpkg-old' -o -iname '*.dpkg-dist' \) -print | sort
de man debsums
:
debsums -ce
List changed configuration files.
Perdón por necro, pero aunque la respuesta de @ naught101 fue correcta para los archivos modificados , no ayudó para los archivos agregados . La solución de @ Graeme es buena, pero depende de etckeeper; No quiero modificar el sistema de archivos.
find /etc -type f | grep -vFf <(debsums -e -r /etc | sed 's/[[:space:]]*OK$//')
Encontrar archivos en / etc / que debsums
no no informan como válido. Esto significa archivos no rastreados o archivos que no están "bien" (los hashes no coinciden).
debsums --list-missing
para verificar si faltan sumas de verificación de uno o más paquetes de los archivos incluidos. Hoy en día la salida debe estar vacía.
En general, me gusta configurar etckeeper en el sistema casi de inmediato. Con algo como etckeeper puedo encontrar no solo cuando el archivo es diferente, sino que también puedo obtener una diferencia de exactamente cómo es diferente.
Ver:
Esto podría ser excesivo, pero dado que alguien mencionó a etckeeper y mientras investigaba que me encontré con esta otra gema que podría ser más útil si está tratando de resolver las cosas "después del hecho".
http://devstructure.com/blueprint/
Blueprint es una herramienta de administración de configuración simple que hace ingeniería inversa a los servidores. Descubre lo que ha hecho manualmente, lo almacena localmente en un repositorio Git, genera código que puede recrear sus esfuerzos y lo ayuda a implementar esos cambios en la producción.
Esto se aleja un poco de la pregunta original, ya que también proporcionará archivos de configuración AGREGADOS en lugar de solo aquellos modificados. Aunque los archivos no incluidos en ningún paquete deb también serán capturados. Ambas conductas pueden ser deseables.
Depende de haber usado etckeeper con git vcs idealmente desde el principio, aunque también debería funcionar si agrega y confirma específicamente archivos previamente modificados después de la primera confirmación. Tenga en cuenta que uno de los problemas aquí es que Ubuntu configura etckeeper para usar Bazaar de manera predeterminada (patrocinador canónico Bazaar), en lugar del valor predeterminado de git establecido por los desarrolladores de etckeeper.
La idea es obtener una lista de todas las confirmaciones que no se realizan automáticamente después y se ejecutan. Luego, enumere los archivos modificados en todos, excepto en el primer commit:
filter_sed="/committing changes in \/etc after apt run\$/d"
etckeeper vcs log --oneline |
sed "$filter_sed; \$d; s/ .*//" |
xargs etckeeper vcs show --name-only --format=format: |
sort |
uniq |
sed "/^\$/d"
La cadena de filtro también podría extenderse para abarcar otras confirmaciones si se nombran de manera coherente. Puede ser bueno para instalaciones directamente desde un archivo deb o desde el código fuente.
Un archivo notable que esto recoge para mí es mi xorg.conf
: actualmente tiene que agregarlo a / etc / X11 usted mismo si lo necesita. También default/grub
se recogen mis cambios, parece que esto se copia de / usr / share mediante un script posterior a la instalación en lugar de aparecer como parte de un paquete. Si se ha realizado un cambio en un archivo como este, los métodos relacionados con dpkg no lo revelarán.
git log
ahora tiene una --invert-grep
opción que permite filtrar confirmaciones poco interesantes sin el uso de sed
.