Eu instalei recentemente o Samba e estraguei o /etc/samba/smb.conf
arquivo. Como recupero a configuração original?
Eu instalei recentemente o Samba e estraguei o /etc/samba/smb.conf
arquivo. Como recupero a configuração original?
Respostas:
Editado :
Detectou isso em uma pergunta de falha no servidor . Se dpkg-reconfigure foo
não funcionar, use o seguinte:
Remova ou renomeie o arquivo de configuração quebrado.
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.broken
Solicitar substituições de dpkg
.
sudo dpkg -i --force-confmiss /path/to/samba-common.deb
Isso indica dpkg
para substituir os arquivos de configuração ausentes pelos do .deb. Você pode encontrar o pacote original .deb /var/cache/apt/archives
ou pode usar uma cópia nova da mesma versão dos repositórios da sua distribuição.
dpkg -i --force-confnew foo.deb
Isso indica dpkg
para substituir os arquivos de configuração existentes pelos do .deb. Você pode encontrar o pacote original .deb /var/cache/apt/archives
ou pode usar uma cópia nova da mesma versão dos repositórios da sua distribuição.
dpkg
a sobrescrever o arquivo de configuração, caso contrário, ele teria pedido permissão para fazê-lo . Isso não o faz recriar magicamente os arquivos de configuração originais do pacote.
--force-confmiss
lugar. neste caso em particular, por exemplo, samba, acho --force-confnew
que executaria a substituição, mas você está certo de que depende das informações dos scripts de configuração do pacote.
Resposta curta: /usr/share/samba/smb.conf
é a versão original do arquivo smb.conf.
Quando confrontado com esta situação para qualquer pacote, o que faço é um dos seguintes:
Verifique se há arquivos de backup da versão original em seu editor. Eu uso o Emacs, que normalmente deixa foo~
arquivos, e configurei a opção de controle numérico de versão para que a versão original seja sempre foo.~1~
. Mas talvez você tenha feito de outra maneira ou usado outro editor. Considere verificar a configuração do seu editor para ativar esse recurso, se você ainda não o tiver; é um bom hábito de entrar.
Reconfigure o pacote com dpkg-reconfigure PACKAGENAME
. Às vezes isso faz o truque. Na minha experiência, raramente funciona; isso depende de como o pacote está criando seus arquivos de configuração.
Limpe e reinstale o pacote (com apt-get purge packagename
seguido de apt-get install packagename
). Isso sempre deve funcionar.
Em casos extremos, após a limpeza, você deve procurar e excluir manualmente os arquivos de configuração antes de reinstalar o pacote, mas isso é raro. No entanto, isso eliminará quaisquer outros dados e / ou arquivos de configuração do pacote, e isso nem sempre é aceitável.
Faça o download do código-fonte do pacote ( apt-get source foo
) e veja se o arquivo de configuração original existe como um arquivo lá. No entanto, pode ser que o arquivo de configuração não exista anteriormente, mas seja criado na instalação pelo script de pós-instalação do pacote.
Verifique o script postinst do pacote ( /var/lib/dpkg/info/foo.postinst
) para descobrir onde ele cria o arquivo de configuração e como ele é feito. Em seguida, tente repetir o processo manualmente. Isso é um pouco de trabalho e nem sempre é fácil.
sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf
sobrescrever meu arquivo conf no lixo com o original.
dpkg-reconfigure <package>
não modificará os arquivos conf alterados por padrão.
Provavelmente, a maneira mais fácil de fazer isso, se você ainda tiver o pacote no cache do apt, é executar
dpgk -i --force-confask /var/cache/apt/archives/<package file name>
onde o nome do arquivo do pacote geralmente é algo como <package name>_<version>.deb
(basta usar a conclusão de tabulação). Isso executará o mesmo processo que um apt-upgrade e perguntará o que você deseja fazer quando encontrar um arquivo conf alterado. Basta entrar N
a cada prompt. O dpkg instalará a versão do pacote do arquivo conf .dpkg-dist
no final do nome do arquivo. Você pode usar vimdiff
ou alguma outra ferramenta de mesclagem para comparar diferenças e modificar o arquivo conf de leitura.
Você pode extrair o deb e pegar o arquivo original:
ar p packagename.deb data.tar.gz | tar zx
dpkg-source
é mais fácil e usar apt-get source PACKAGE
é muito mais fácil.
packagename.postinst
script.
Você pode baixar novamente e extrair o conteúdo do pacote deb
A melhor maneira (obtida do #ubuntu) é fazer isso:
dpkg-reconfigure <package>
Nesse caso, isso significa
dpkg-reconfigure samba-common
Você pode restaurar o smb.conf
arquivo de configuração original assim:
# cp /usr/share/samba/smb.conf /etc/samba/smb.conf
# dpkg-reconfigure samba-common
Isto é basicamente o que o processo de instalação original do pacote faz (no Debian Squeeze).
Isso substituirá você atual smb.conf
; portanto, faça um backup primeiro se não quiser perdê-lo.
$ sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf
e
$ sudo dpkg --configure -a
fará o trabalho.
sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf