CentOS6から7にユーザを移行してみる

CentOS6からCentOS7にユーザを移行する作業があり、方法を調べてみました。

CentOS6 6.10
CentOS7 7.7.1908
にて確認しています。

作業は全てrootユーザにて行っています。

CentOS6側

# テスト用グループ作成
groupadd -g 19999 test-group
# テスト用ユーザ作成
useradd  -g 19999 -u 19999 foo
passwd foo
bar
bar

# ユーザ追加確認
cat /etc/passwd | grep foo
# パスワード確認(ハッシュ方式確認)
#   先頭が$1ならmd5
#         $5ならsha256
#         $6ならsha512
#   ※受け側のglibcが2.7以降であれば、どの形式でもそのままコピペ可のようです
cat /etc/shadow | grep foo
# グループ追加確認
cat /etc/group | grep test

# ユーザ変更
su - foo
# テストファイル作成
touch test
# rootに戻る
exit

# ホームディレクトリのバックアップ
tar cvf foohome.tar /home/foo
# 固めたアーカイブは手元に置いておきます(あとでCentOS7側に転送します)

Centos7側

# ホームディレクトリの内容を予めCentOS7側に転送しておきます

# ホームディレクトリの内容を展開
cd /
tar xvf ~/foohome.tar
ls -al /home

# ユーザ定義のインポート
# ※データが画面上で2行に見えている場合がありますが、そのまま1行として貼り付け下さい
#

# /etc/passwd  に CentOS6側の /etc/passwd  内の foo        の行をそのまま貼り込んで保存
vipw -p

# /etc/shadow  に CentOS6側の /etc/shadow  内の foo        の行をそのまま貼り込んで保存
vipw -s

# /etc/group   に CentOS6側の /etc/group   内の test-group の行をそのまま貼り込んで保存
vigr -g

# /etc/gshadow に CentOS6側の /etc/gshadow 内の test-group の行をそのまま貼り込んで保存
vigr -s

# 移行結果確認
ls -al /home

ユーザfooでCentOS7にログインして確認ください。

以上です