Recientemente instalé Samba y estropeé el /etc/samba/smb.conf
archivo. ¿Cómo recupero la configuración original?
Recientemente instalé Samba y estropeé el /etc/samba/smb.conf
archivo. ¿Cómo recupero la configuración original?
Respuestas:
Editado :
Descubrí esto en una pregunta por defecto del servidor . Si el dpkg-reconfigure foo
no funciona, use esto:
Elimine o cambie el nombre del archivo de configuración roto.
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.broken
Solicitar reemplazos de dpkg
.
sudo dpkg -i --force-confmiss /path/to/samba-common.deb
Esto le indica dpkg
que reemplace los archivos de configuración que faltan con los del .deb. Puede encontrar el paquete original .deb /var/cache/apt/archives
o puede usar una copia nueva de la misma versión de los repositorios de su distribución.
dpkg -i --force-confnew foo.deb
Esto le indica dpkg
que sobrescriba los archivos de configuración existentes con los de .deb. Puede encontrar el paquete original .deb /var/cache/apt/archives
o puede usar una copia nueva de la misma versión de los repositorios de su distribución.
dpkg
a sobrescribir el archivo de configuración si de lo contrario hubiera pedido permiso para hacerlo . No , no lo hacen mágicamente recrear archivos de configuración prístinos del paquete.
--force-confmiss
en su lugar. en este caso particular, por ejemplo, samba, creo --force-confnew
que realizaría la sobrescritura, pero tienes razón en que depende de los detalles de los scripts de configuración del paquete.
Respuesta corta: /usr/share/samba/smb.conf
es la versión original del archivo smb.conf.
Cuando me enfrento a esta situación para cualquier paquete, lo que hago es uno de los siguientes:
Verifique los archivos de respaldo de la versión original desde su editor. Uso Emacs, que normalmente deja foo~
archivos, y configuré la opción numérica de control de versiones para que la versión original sea siempre foo.~1~
. Pero tal vez lo hiciste de otra manera, o usaste algún otro editor. Considere verificar la configuración de su editor para activar esta función si aún no lo ha hecho; Es un buen hábito entrar.
Reconfigure el paquete con dpkg-reconfigure PACKAGENAME
. A veces esto hace el truco. En mi experiencia, rara vez funciona; depende de cómo el paquete está creando sus archivos de configuración.
Purgue y reinstale el paquete ( apt-get purge packagename
seguido de apt-get install packagename
). Esto siempre debería funcionar.
En casos extremos, debe, después de la purga, buscar y eliminar manualmente los archivos de configuración antes de reinstalar el paquete, pero esto es raro. Sin embargo, esto eliminará cualquier otro dato y / o archivo de configuración para el paquete, y eso no siempre es aceptable.
Descargue el código fuente del paquete ( apt-get source foo
) y vea si el archivo de configuración original existe como un archivo allí. Sin embargo, puede ser que el archivo de configuración no exista de antemano, sino que se crea en la instalación mediante el script posterior a la instalación del paquete.
Verifique el script postinst para el paquete ( /var/lib/dpkg/info/foo.postinst
) para averiguar dónde crea el archivo de configuración y cómo lo hace. Luego intente repetir el proceso manualmente. Esto es un poco de trabajo, y no siempre es fácil.
sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf
sobrescribir mi archivo de basura con el original.
dpkg-reconfigure <package>
no modificará los archivos conf modificados de forma predeterminada.
Probablemente la forma más fácil de hacer esto, si todavía tiene el paquete en el caché apto es ejecutar
dpgk -i --force-confask /var/cache/apt/archives/<package file name>
donde el nombre del archivo del paquete suele ser algo así <package name>_<version>.deb
(solo use la finalización de tabulación). Esto se ejecutará a través del mismo proceso que una actualización de apt y le preguntará qué desea hacer cuando encuentre un archivo de configuración modificado. Simplemente ingrese N
en cada solicitud. dpkg instalará la versión del paquete del archivo conf .dpkg-dist
al final del nombre del archivo. Luego puede usar vimdiff
o alguna otra herramienta de combinación para comparar diferencias y modificar el archivo conf de lectura.
Puede extraer el deb y tomar el archivo original:
ar p packagename.deb data.tar.gz | tar zx
dpkg-source
es más fácil y usar apt-get source PACKAGE
es mucho más fácil.
packagename.postinst
script.
Puede volver a descargar y extraer el contenido del paquete deb
La mejor manera (obtenida de #ubuntu) es hacer esto:
dpkg-reconfigure <package>
En este caso eso significa
dpkg-reconfigure samba-common
Puede restaurar el smb.conf
archivo de configuración original de esta manera:
# cp /usr/share/samba/smb.conf /etc/samba/smb.conf
# dpkg-reconfigure samba-common
Esto es básicamente lo que hace el proceso de instalación del paquete original (en Debian Squeeze).
Esto sobrescribirá su actual smb.conf
, así que haga una copia de seguridad primero si no desea perderla.
$ sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf
y
$ sudo dpkg --configure -a
Hará el trabajo.
sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf