web-dev-qa-db-ja.com

デフォルトのSamba設定ファイル(Debianベースのシステム)を元に戻すにはどうすればよいですか?

最近Sambaをインストールし、/etc/samba/smb.confファイルを台無しにしました。元の構成に戻すにはどうすればよいですか?

10
Frew Schmidt

(#ubuntuから取得した)最良の方法はこれを行うことです:

dpkg-reconfigure <package>

この場合、それは

dpkg-reconfigure samba-common
1
Frew Schmidt

編集済み

これを サーバー障害の質問 で見つけました。 dpkg-reconfigure fooが機能しない場合は、次を使用してください。

  1. 壊れた構成ファイルを削除するか、名前を変更します。

    Sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.broken
    
  2. dpkgから交換をリクエストします。

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

これにより、dpkgは、欠落している構成ファイルを.debの構成ファイルに置き換えるように指示されます。元のパッケージ.debは/var/cache/apt/archivesにある場合があります。または、ディストリビューションのリポジトリから同じバージョンの新しいコピーを使用することもできます。

dpkg -i --force-confnew foo.deb

これにより、dpkgに既存の構成ファイルを.debの構成ファイルで上書きするように指示されます。元のパッケージ.debは/var/cache/apt/archivesにある場合があります。または、ディストリビューションのリポジトリから同じバージョンの新しいコピーを使用することもできます。

8
quack quixote

簡単な答え:/usr/share/samba/smb.confはsmb.confファイルの元のバージョンです。

どのパッケージでもこの状況に直面したとき、私がすることは次のいずれかです。

  1. 元のバージョンのバックアップファイルを確認してくださいエディタから。私は通常foo~ファイルを残すEmacsを使用し、元のバージョンが常にfoo.~1~になるように数値バージョン管理オプションを設定しました。しかし、おそらくあなたはそれを他の方法で行ったか、他のエディターを使用しました。まだ行っていない場合は、エディターの構成を確認して、この機能をオンにすることを検討してください。入るのは良い習慣です。

  2. パッケージを再構成しますdpkg-reconfigure PACKAGENAMEを使用します。時々これはトリックをします。私の経験では、それが機能することはめったにありません。パッケージが構成ファイルを作成する方法によって異なります。

  3. パッケージをパージして再インストールしますapt-get purge packagenameの後にapt-get install packagenameを付けます)。これは常に機能するはずです。

    極端な場合、パッケージを再インストールする前に、パージした後、手動で設定ファイルを探して削除する必要がありますが、これはまれです。ただし、これにより、パッケージの他のデータや構成ファイルが削除され、常に受け入れられるとは限りません。

  4. パッケージのソースコードをダウンロードapt-get source foo)そして、元の設定ファイルがそこにファイルとして存在するかどうかを確認します。ただし、構成ファイルが事前に存在しておらず、インストール時にパッケージのインストール後のスクリプトによって作成されている可能性があります。

  5. パッケージのpostinstスクリプトを確認してください/var/lib/dpkg/info/foo.postinst)構成ファイルを作成する場所とその方法を確認してください。次に、プロセスを手動で繰り返してみてください。これは少し手間がかかり、必ずしも簡単ではありません。

7
Teddy

dpkg-reconfigure <package>は、デフォルトでは変更されたconfファイルを変更しません。

Aptキャッシュにまだパッケージがある場合は、おそらくこれを行う最も簡単な方法は、

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

ここで、パッケージファイル名は通常<package name>_<version>.debのようなものです(タブ補完を使用するだけです)。これはapt-upgradeと同じプロセスを実行し、変更されたconfファイルが見つかるたびに何をしたいかを尋ねます。すべてのプロンプトでNと入力するだけです。 dpkgは、ファイル名の末尾に.dpkg-distが付いたconfファイルのパッケージバージョンをインストールします。次に、vimdiffまたはその他のマージツールを使用して違いを比較し、読み取りconfファイルを変更できます。

2
naught101

次のように、元のsmb.conf構成ファイルを復元できます。

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

これは基本的に、元のパッケージのインストールプロセスが(Debian Squeezeで)行うことです。

これにより、現在のsmb.confが上書きされるため、失いたくない場合は、最初にバックアップを作成してください。

1
Totor

Debを抽出して、元のファイルを取得できます。

ar p packagename.deb data.tar.gz | tar zx
1
John T

Debパッケージの内容を再ダウンロードして抽出できます

1
Mahmoud Hossam