CentOSで別サーバーにユーザーを移行

シェアする

  • このエントリーをはてなブックマークに追加

サーバーA(CentOS 6)のユーザーをサーバーB(CentOS 7)に移行する機会があったので覚え書きです。

スポンサードリンク

ミスった移行手順

今まで運用していたサーバーA(CentOS 6)と新規にOSをインストールしたばかりのサーバーB(CentOS 7)があったとします。
サーバーAからサーバーBにユーザーの移行を試みました。

サーバーAから /home、/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow の5つのファイルをサーバーBにコピーします。

サーバーAで
# cd /home
# tar -zcvf home.tar.gz home
# scp home.tar.gz root@(サーバーB)
# cd /etc
# tar -zcvf etc.tar.gz passwd shadow group gshadow
# scp etc.tar.gz root@(サーバーB)

サーバーBで
# mv /home /home-orig
# mv /etc/passwd /etc/passwd-orig
# mv /etc/shadow /etc/shadow-orig
# mv /etc/group /etc/group-orig
# mv /etc/gshadow /etc/gshadow-orig
# cd /home
# gunzip home.tar.gz
# tar -xvf home.tar
# cd /etc
# gunzip etc.tar.gz
# tar -xvf etc.tar
これでサーバーを再起動しました。

スポンサードリンク

ミスった・・Booting from Hard Diskで止まる

Booting from DVD/CD...
Boot failed: Could not read from CDROM (code 0003)
Booting from Hard Disk...

image

と表示されて2度と起動しなくなります。

間違いは、/etc/passwd /etc/shadow /etc/group /etc/gshadow を上書きして起動してしまったことです。

同じCentOS 6ならうまくいくかもしれませんが、OSのバージョンが違うので、/etc/passwd /etc/shadow /etc/group /etc/gshadow については、/homeに存在するような必要なユーザーとグループを選別してコピー&ペーストしなくてはいけません。

ちなみに「Booting from Had Disk...」で起動しなくなった場合は、CD/DVDから起動させます。

image

「Troubleshooting」を選択します。

image

「Rescue a CentOS system」を選択します。

image

 

image

「Continue」を押します。

image

「OK」を押します。

image

「OK」を押します。

image

シェルになりました。

システムは、/mnt/sysimage にマウントされています。

スポンサードリンク

正しい移行手順

サーバーAから /home、/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow の5つのファイルをサーバーBにコピーします。

サーバーAで
# cd /home
# tar -zcvf home.tar.gz home
# scp home.tar.gz root@(サーバーB)
# cd /etc
# tar -zcvf etc.tar.gz passwd shadow group gshadow
# scp etc.tar.gz root@(サーバーB)

サーバーBで
# mv /home /home-orig
# mv /etc/passwd /etc/passwd-orig
# mv /etc/shadow /etc/shadow-orig
# mv /etc/group /etc/group-orig
# mv /etc/gshadow /etc/gshadow-orig
# cd /home
# gunzip home.tar.gz
# tar -xvf home.tar

ここまではミスった移行手順の通りです。

次に取りあえず、etc.tar.gzについては、/root直下で展開しておきます。
# cd /root
# gunzip etc.tar.gz
# tar -xvf etc.tar

この後、
# vipw /etc/passwd (/root/passwd から必要なユーザーをコピー&ペースト)
# vipw -s /etc/shadow (/root/shadow から必要なユーザーをコピー&ペースト)
# vigr /etc/group (/root/group から必要なグループをコピー&ペースト)
# vigr -s /etc/gshadow (/root/gshadow から必要なグループをコピー&ペースト)
とします。

これらのコマンドで編集すると、/etc/passwd-、/etc/shadow-、/etc/group-、/etc/gshadow- といった”-“付きのファイルが自動的に作成されます。
これらのファイルはバックアップファイルです。

以上でユーザーの移行が完了したので、サーバーBを再起動します。

まとめ

まとめというか、ミスった移行手順で/etc/passwdとかを上書きして再起動したのは、極めて安易でした。

冷静に考えてみれば決してやってはいけないことです。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です