Comment récupérer le fichier de configuration Samba par défaut (système basé sur Debian)?

10

J'ai récemment installé Samba et j'ai foiré le /etc/samba/smb.conffichier. Comment récupérer la configuration d'origine?

Frew Schmidt
la source
1
sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf
ThorSummoner

Réponses:

8

Modifié :

Repéré cela sur une question de défaillance du serveur . Si dpkg-reconfigure foocela ne fonctionne pas, utilisez ceci:

  1. Supprimez ou renommez le fichier de configuration rompu.

    sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.broken
    
  2. Demandez des remplacements à dpkg.

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

Cela indique dpkgde remplacer les fichiers de configuration manquants par ceux du .deb. Vous pouvez trouver le package d'origine .deb dans /var/cache/apt/archives, ou vous pouvez utiliser une nouvelle copie de la même version à partir des référentiels de votre distribution.

dpkg -i --force-confnew foo.deb

Cela indique dpkgde remplacer les fichiers de configuration existants par ceux du fichier .deb. Vous pouvez trouver le package d'origine .deb dans /var/cache/apt/archives, ou vous pouvez utiliser une nouvelle copie de la même version à partir des référentiels de votre distribution.

Quack Quichotte
la source
Ce drapeau ne force dpkgà écraser le fichier de configuration que s'il aurait autrement demandé la permission de le faire . Cela ne permet pas de recréer comme par magie des fichiers de configuration intacts à partir du package.
Teddy
je crois que vous avez raison. ok, donc vous voulez --force-confmissplutôt. dans ce cas particulier, par exemple samba, je pense que --force-confnewcela effectuerait l'écrasement, mais vous avez raison, cela dépend des détails des scripts de configuration du package.
Quack Quichotte
7

Réponse courte: /usr/share/samba/smb.confc'est la version originale du fichier smb.conf.

Face à cette situation pour n'importe quel paquet, ce que je fais est l'un des suivants:

  1. Recherchez les fichiers de sauvegarde de la version d'origine dans votre éditeur. J'utilise Emacs, qui laisse normalement des foo~fichiers, et j'ai défini l'option de contrôle de version numérique pour que la version d'origine soit toujours foo.~1~. Mais peut-être que vous l'avez fait d'une autre manière ou que vous avez utilisé un autre éditeur. Pensez à vérifier la configuration de votre éditeur pour activer cette fonctionnalité si vous ne l'avez pas déjà fait; c'est une bonne habitude à prendre.

  2. Reconfigurez le package avec dpkg-reconfigure PACKAGENAME. Parfois, cela fait l'affaire. D'après mon expérience, cela fonctionne rarement; cela dépend de la façon dont le package crée ses fichiers de configuration.

  3. Purgez et réinstallez le package ( apt-get purge packagenamesuivi de apt-get install packagename). Cela devrait toujours fonctionner.

    Dans les cas extrêmes, vous devez, après la purge, rechercher et supprimer manuellement les fichiers de configuration avant de réinstaller le package, mais cela est rare. Cependant, cela éliminera tout autre fichier de données et / ou de configuration pour le package, ce qui n'est pas toujours acceptable.

  4. Téléchargez le code source du package ( apt-get source foo) et voyez si le fichier de configuration d'origine existe en tant que fichier. Cependant, il se peut que le fichier de configuration n'existe pas auparavant, mais qu'il soit créé lors de l'installation par le script de post-installation du package.

  5. Vérifiez le script postinst du package ( /var/lib/dpkg/info/foo.postinst) pour savoir où il crée le fichier de configuration et comment il le fait. Essayez ensuite de répéter le processus manuellement. C'est un peu de travail et pas toujours facile.

Teddy
la source
Cela devrait être plus élevé. Pour moi, il s'agissait simplement de faire sudo cp /usr/share/samba/smb.conf /etc/samba/smb.confpour remplacer mon fichier de conf à la corbeille par l'original.
edzillion
2

dpkg-reconfigure <package> ne modifiera pas les fichiers de conf modifiés par défaut.

Probablement la façon la plus simple de le faire, si vous avez encore le paquet dans le cache apt, c'est d'exécuter

dpgk -i --force-confask /var/cache/apt/archives/<package file name>

où le nom du fichier de package est généralement quelque chose comme <package name>_<version>.deb(utilisez simplement la complétion de tabulation). Cela passera par le même processus qu'une mise à niveau d'apt et vous demandera ce que vous voulez faire chaque fois qu'il trouvera un fichier conf modifié. Entrez simplement Nà chaque invite. dpkg installera la version du package du fichier conf avec .dpkg-distà la fin du nom de fichier. Vous pouvez ensuite utiliser vimdiffou un autre outil de fusion pour comparer les différences et modifier le fichier conf de lecture.

rien101
la source
1

Vous pouvez extraire le deb et récupérer le fichier d'origine:

ar p packagename.deb data.tar.gz | tar zx
John T
la source
L'utilisation dpkg-sourceest plus facile et l'utilisation apt-get source PACKAGEest beaucoup plus facile.
Teddy
1
@Teddy: uniquement si le fichier de configuration par défaut est inclus dans le package source pour commencer. de nombreux packages installent un fichier de configuration fortement spécifique au fournisseur; certains génèrent automatiquement leurs fichiers de configuration dans le packagename.postinstscript.
Quack Quichotte
1

Vous pouvez retélécharger et extraire le contenu du paquet deb

Mahmoud Hossam
la source
1
C'est un moyen beaucoup trop bas pour le faire
Frew Schmidt
4
ne veut pas dire que cela ne fonctionnera pas
John T
1

La meilleure façon (obtenue de #ubuntu) est de faire ceci:

dpkg-reconfigure <package>

Dans ce cas, cela signifie

dpkg-reconfigure samba-common
Frew Schmidt
la source
1

Vous pouvez restaurer le smb.conffichier de configuration d' origine comme ceci:

# cp /usr/share/samba/smb.conf /etc/samba/smb.conf
# dpkg-reconfigure samba-common

C'est essentiellement ce que fait le processus d'installation du paquet d'origine (sur Debian Squeeze).

Cela vous remplacera actuellement smb.conf, alors faites d'abord une sauvegarde si vous ne voulez pas la perdre.

Totor
la source
Merci d'avoir fourni le nom du paquet contenant ce fichier. "sudo aptitude purge samba-common; sudo aptitude install samba" était mon choix, mais la réponse de Totor semble la moins effrayante et la plus Debian des choix.
Martin Dorey
-1
$ sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf

et

$ sudo dpkg --configure -a

fera le travail.

Kushagra Karira
la source
C'est presque identique à toutes les autres réponses ici. C'est aussi sur un post de '14.
var firstName