Wie erhalte ich die Standard-Samba-Konfigurationsdatei (Debian-basiertes System) zurück?

19366
Frew Schmidt

Ich habe vor kurzem Samba installiert und die /etc/samba/smb.confDatei durcheinander gebracht . Wie bekomme ich die ursprüngliche Konfiguration zurück?

9
`sudo cp /usr/share/samba/smb.conf / etc / samba / smb.conf` ThorSummoner vor 6 Jahren 0

8 Antworten auf die Frage

8
quack quixote

Bearbeitet :

Dies wurde auf einer Serverfehler-Frage entdeckt . Wenn das dpkg-reconfigure foonicht funktioniert, verwenden Sie folgendes:

  1. Entfernen Sie die beschädigte Konfigurationsdatei oder benennen Sie sie um.

    sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.broken 
  2. Ersatz anfordern von dpkg.

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

Dies bedeutet dpkg, fehlende Konfigurationsdateien durch die aus der .deb-Datei zu ersetzen. Sie finden das Originalpaket .deb möglicherweise in /var/cache/apt/archivesoder Sie können eine neue Kopie derselben Version aus den Repositorys Ihrer Distribution verwenden.

dpkg -i --force-confnew foo.deb 

Dies bedeutet dpkg, vorhandene Konfigurationsdateien mit den Dateien aus der .deb zu überschreiben. Sie finden das Originalpaket .deb möglicherweise in /var/cache/apt/archivesoder Sie können eine neue Kopie derselben Version aus den Repositorys Ihrer Distribution verwenden.

Dieses Flag zwingt `dpkg` nur dazu, die Konfigurationsdatei * zu überschreiben, wenn es sonst um Erlaubnis gebeten hätte *. Es macht ** nicht **, dass es die ursprünglichen Konfigurationsdateien auf magische Weise aus dem Paket wiederherstellt. Teddy vor 14 Jahren 0
Ich glaube, du hast recht. ok, du willst stattdessen das `--force-confmiss`. In diesem speziellen Fall, z. B. Samba, denke ich, dass "--force-confnew" das Überschreiben ausführen würde, aber Sie haben Recht, dass es von den Details der Paketkonfigurationsskripte abhängt. quack quixote vor 14 Jahren 0
6
Teddy

Kurze Antwort: /usr/share/samba/smb.confIst die Originalversion der Datei smb.conf.

Wenn ich mit dieser Situation für jedes Paket konfrontiert bin, mache ich eine der folgenden Möglichkeiten:

  1. Suchen Sie in Ihrem Editor nach Sicherungsdateien der Originalversion . Ich verwende Emacs, das normalerweise foo~Dateien hinterlässt, und ich habe die Option zur numerischen Versionskontrolle so eingestellt, dass die Originalversion immer verwendet wird foo.~1~. Aber vielleicht haben Sie es anders gemacht oder einen anderen Editor verwendet. Überprüfen Sie die Konfiguration Ihres Editors, um diese Funktion zu aktivieren, falls Sie dies noch nicht getan haben. es ist eine gute Angewohnheit, sich einzulassen.

  2. Rekonfigurieren Sie das Paket mit dpkg-reconfigure PACKAGENAME. Manchmal macht das den Trick. Nach meiner Erfahrung funktioniert es selten; Dies hängt davon ab, wie das Paket seine Konfigurationsdateien erstellt.

  3. Löschen Sie das Paket und installieren Sie es erneut (mit apt-get purge packagenamegefolgt von apt-get install packagename). Das sollte immer funktionieren.

    In extremen Fällen müssen Sie nach dem Löschen die Konfigurationsdateien manuell suchen und löschen, bevor Sie das Paket erneut installieren. Dies ist jedoch selten. Dadurch werden jedoch alle anderen Daten- und / oder Konfigurationsdateien für das Paket entfernt. Dies ist nicht immer akzeptabel.

  4. Laden Sie den Quellcode für das package ( apt-get source foo) herunter und prüfen Sie, ob die ursprüngliche Konfigurationsdatei dort als Datei vorhanden ist. Es kann jedoch vorkommen, dass die Konfigurationsdatei zuvor nicht vorhanden ist, sondern bei der Installation vom Nachinstallationsskript des Pakets erstellt wird.

  5. Überprüfen Sie das postinst-Skript für package ( /var/lib/dpkg/info/foo.postinst), um herauszufinden, wo die Konfigurationsdatei erstellt wird und wie sie ausgeführt wird. Versuchen Sie dann, den Vorgang manuell zu wiederholen. Dies ist ein bisschen Arbeit und nicht immer einfach.

Dies sollte höher sein. Für mich war es nur ein Fall, sudo cp /usr/share/samba/smb.conf / etc / samba / smb.conf zu tun, um meine verworfene conf-Datei mit dem Original zu überschreiben. edzillion vor 8 Jahren 0
2
naught101

dpkg-reconfigure <package> ändert geänderte conf-Dateien standardmäßig nicht.

Der einfachste Weg, dies zu tun, wenn Sie das Paket noch im apt-Cache haben, ist die Ausführung

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

wo der Name der Paketdatei normalerweise so ist <package name>_<version>.deb(verwenden Sie einfach die Tabulatorvervollständigung). Dies durchläuft den gleichen Vorgang wie ein apt-Upgrade. Sie werden gefragt, was Sie tun möchten, wenn eine geänderte conf-Datei gefunden wird. Geben Sie einfach Nbei jeder Eingabeaufforderung ein. dpkg installiert die Paketversion der conf-Datei .dpkg-distam Ende des Dateinamens. Sie können dann vimdiffein anderes Zusammenführungswerkzeug verwenden, um die Unterschiede zu vergleichen und die gelesene conf-Datei zu ändern.

1
John T

Sie können das deb entpacken und die Originaldatei packen:

ar p packagename.deb data.tar.gz | tar zx 
Die Verwendung von "dpkg-source" ist einfacher und die Verwendung von "apt-get source PACKAGE" ist * viel * einfacher. Teddy vor 14 Jahren 0
@ Teddy: Nur wenn die Standardkonfigurationsdatei im Quellpaket enthalten ist. Viele Pakete installieren eine stark herstellerspezifische Konfigurationsdatei. Einige generieren automatisch ihre Konfigurationsdateien im `packagename.postinst`-Skript. quack quixote vor 14 Jahren 1
1
Mahmoud Hossam

Sie können den Inhalt des Deb-Pakets erneut herunterladen und extrahieren

Dies ist viel zu wenig, um dies zu tun Frew Schmidt vor 14 Jahren 1
bedeutet nicht, dass es nicht funktioniert John T vor 14 Jahren 4
1
Frew Schmidt

Der beste Weg (von #ubuntu erhalten) ist dies zu tun:

dpkg-reconfigure <package> 

In diesem Fall heißt das

dpkg-reconfigure samba-common 
1
Totor

Sie können die ursprüngliche smb.confKonfigurationsdatei folgendermaßen wiederherstellen :

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

Dies ist im Wesentlichen das, was der ursprüngliche Paketinstallationsprozess (unter Debian Squeeze) ausführt.

Dadurch werden die aktuellen Daten überschrieben. Erstellen Sie smb.confdaher zuerst ein Backup, wenn Sie es nicht verlieren möchten.

Vielen Dank, dass Sie den Namen des Pakets angegeben haben, das diese Datei enthält. "sudo aptitude purge samba-common; sudo aptitude install samba" war meine Wahl, aber Totors Antwort sieht am wenigsten unheimlich und die meisten Debian-Entscheidungen aus. Martin Dorey vor 8 Jahren 0
-1
Kushagra Karira
$ sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf 

und

$ sudo dpkg --configure -a 

wird die Arbeit machen.

Dies ist fast identisch mit allen anderen Antworten hier. Es ist auch ein Post von '14. var firstName vor 5 Jahren 0