¿Cómo recupero el archivo de configuración predeterminado de Samba (sistema basado en Debian)?

Respuestas:

8

Editado :

Descubrí esto en una pregunta por defecto del servidor . Si el dpkg-reconfigure foono funciona, use esto:

  1. Elimine o cambie el nombre del archivo de configuración roto.

    sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.broken
    
  2. Solicitar reemplazos de dpkg.

    sudo dpkg -i --force-confmiss /path/to/samba-common.deb
    

Esto le indica dpkgque reemplace los archivos de configuración que faltan con los del .deb. Puede encontrar el paquete original .deb /var/cache/apt/archiveso 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 dpkgque sobrescriba los archivos de configuración existentes con los de .deb. Puede encontrar el paquete original .deb /var/cache/apt/archiveso puede usar una copia nueva de la misma versión de los repositorios de su distribución.

quijote curandero
fuente
Esa bandera solo obliga dpkga 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.
Teddy
Creo que tienes razón. ok, entonces quieres el --force-confmissen su lugar. en este caso particular, por ejemplo, samba, creo --force-confnewque realizaría la sobrescritura, pero tienes razón en que depende de los detalles de los scripts de configuración del paquete.
quack quijote
7

Respuesta corta: /usr/share/samba/smb.confes 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:

  1. 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.

  2. 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.

  3. Purgue y reinstale el paquete ( apt-get purge packagenameseguido 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.

  4. 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.

  5. 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.

Osito de peluche
fuente
Esto debería ser más alto. Para mí fue solo un caso de sudo cp /usr/share/samba/smb.conf /etc/samba/smb.confsobrescribir mi archivo de basura con el original.
edzillion
2

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 Nen cada solicitud. dpkg instalará la versión del paquete del archivo conf .dpkg-distal final del nombre del archivo. Luego puede usar vimdiffo alguna otra herramienta de combinación para comparar diferencias y modificar el archivo conf de lectura.

nada101
fuente
1

Puede extraer el deb y tomar el archivo original:

ar p packagename.deb data.tar.gz | tar zx
John T
fuente
Usar dpkg-sourcees más fácil y usar apt-get source PACKAGEes mucho más fácil.
Teddy
1
@Teddy: solo si el archivo de configuración predeterminado está incluido en el paquete fuente para empezar. muchos paquetes instalan un archivo de configuración muy específico del proveedor; algunos generan automáticamente sus archivos de configuración en el packagename.postinstscript.
quack quijote
1

Puede volver a descargar y extraer el contenido del paquete deb

Mahmoud Hossam
fuente
1
Este es un nivel demasiado bajo para hacerlo
Frew Schmidt
44
no significa que no va a funcionar
John T
1

La mejor manera (obtenida de #ubuntu) es hacer esto:

dpkg-reconfigure <package>

En este caso eso significa

dpkg-reconfigure samba-common
Frew Schmidt
fuente
1

Puede restaurar el smb.confarchivo 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.

Totor
fuente
Gracias por proporcionar el nombre del paquete que contiene este archivo. "sudo aptitude purge samba-common; sudo aptitude install samba" fue mi elección, pero la respuesta de Totor parece la menos aterradora y la más Debian de las opciones.
Martin Dorey
-1
$ sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf

y

$ sudo dpkg --configure -a

Hará el trabajo.

Kushagra Karira
fuente
Esto es casi idéntico a todas las otras respuestas aquí. También está en una publicación del '14.
var firstName