(無償) logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)

★LibreOfficeの導入事例★
詳細について

2015年5月23日土曜日

【SAMBA 3.6.23 x86_64】SAMBAサーバーを新規マシンに移行する方法について(SAMBAユーザーアカウント情報tdbsamの移行方法)【Linux CentOS 6.6 64bit】

(不具合が発生するかもしれないので注意)
以下の方法でsambaユーザー情報を複製したシステムで、下記のように不具合が生じた。
ただし因果関係があるかどうかはっきりしない。

数ヵ月動作させていると、次第にsambaに新規に接続するユーザーの認証が遅くなっていった。
これは次第にひどくなっていって、最終的にはタイムアウトするようになってしまった。
 この問題は再起動によって一度は回復したものの、また後になって、
次のように、急に認証不能状態に陥ってしまった。

新規に接続するユーザーは認証に成功せずにタイムアウトになる。
この場合でも、既に認証を済ませているユーザーは、問題なく使用し続けることができていた。
このときには、sambaの再起動、マシン全体の再起動によっても回復しなかった。
データは無事であった。

ただし、この件について、数か月後に問題が生じるようになったこともあり、
因果関係は明らかではない。

これを受けて、今後は下記のような方法をとらずに、
1ユーザーずつ pdbedit -a コマンドで追加していこうと考えている。



新しいマシンに新規にOSを導入した後、古いマシンで動作していたSAMBA環境を移行した。


■前提事項

・SAMBAのユーザー管理は、tdbsamで行っているものとする。
(security = user
 passdb backend = tdbsam)

・新しいマシンにおいて、SAMBAがインストールされて、アクセス可能な状態になっていること。
(iptables、selinuxなどに注意)

・新しいマシンに、共有対象ファイルが適切な場所に、かつ適切な所有者や権限で移行されていること。
(rsyncで行った。)

・新しいマシンにおいて、passwd、shadow、group、gshadowのリストアが問題なく行われていること。
(絶対に単純に古いファイルによって置換してはいけない。500番以降の情報のみ扱った。)

・新しいマシンにおいて、SAMBAサービスが停止していること。



■SAMBA設定ファイルのリストア

移行先の新しいマシンにおいて、次の操作を行った。


1、オリジナルのsamba設定ファイルをつぎのようにしてディレクトリごとバックアップした。
# mv /etc/samba /etc/samba.org

2、旧来の設定ファイルをコピーした。(ファイルの所有者、権限に注意)
# cp backup/samba /etc/ -r



■SAMBAユーザーアカウントデータベース(tdbsam password database)のリストア

移行先の新しいマシンにおいて、次の操作を行った。


1、データーベースが保存されている場所を調べた。
# smbd -b | grep PRIVATE_DIR
PRIVATE_DIR: /var/lib/samba/private

2、オリジナルのtdbファイルを次のようにしてバックアップした。
# mv /var/lib/samba/private/passdb.tdb /var/lib/samba/private/passdb.tdb.org


3、旧来のデータベースファイル(backup/passdb.tdb)をコピーした。
(ファイルの所有者、権限に注意)
# cp backup/passdb.tdb /var/lib/samba/private/passdb.tdb



■動作確認

○ユーザーアカウントが保持されているか確認した。

次のコマンドで、アカウント一覧が表示された。
# pdbedit -L


○SAMBAサービスを起動し、アクセスできるか確認した。

サービスの起動を行った。
# service smb start

問題なくサービスが起動して、登録されているユーザーでアクセスすることができた。



<参考>
・[Samba] Where is the tdbsam password database file?
< https://lists.samba.org/archive/samba/2007-September/135288.html >