/etc/shadowのパスワードを別のサーバーへコピペで移行する

この記事では、Linuxサーバーの/etc/shadowのパスワードを別のLinuxサーバーにコピペして、同じパスワードでログインする方法が分かります。
 Linuxサーバーで自分以外のユーザーを追加する場合に、
ユーザーを仮のパスワードで作成して後で変更してもらう、というオペレーションが煩わしいので、
別のLinuxサーバーから/etc/shadowをコピペして、同じパスワードでログインできるようにする方法紹介します。
※仮のパスワードでログインできない場合の対処、パスワードを別途送付する手間を減らしたい。

vipw -sコマンドで/etc/shadowを編集する

結論


/etc/shadowをvipw -sコマンドで編集して、:wp!で強制的に保存する。

 


vipw -s

vipw -sは/etc/shadowを編集する専用のコマンドです。

編集している時は排他制御がかかり他のユーザーが編集できなくなるため、安全に編集することが可能です。

 

私はLinuxで使用するエディタをvimに選択しているためvimの前提で説明していきます。

vipw -sを実行すると/etc/shadowがvimで開きます。

編集すると、以下のようにreadonlyファイルであると警告されますが、編集後に:wp!で強制的に保存して変更内容を反映できます。

readonly option is set(add ! to override)
/etc/shadowとは
ユーザーのパスワード情報が保存されているファイルで、各項目がセミコロン「:」で区切られ、第二フィールドがハッシュ化されたパスワードになっています。
シャチ
通常のviコマンドでもshadowを編集できるようですが、排他制御がかからず危険とのこと。

パスワードを別のLinuxサーバーへコピペする手順

コマンドが分かれば以下のとおり、あとは単純にコピペしていくだけです。

 

手順

▢コピー元のLinuxサーバーの/etc/shadowから、対象ユーザーのハッシュ化されたパスワードをコピー。

▢コピー先のLinuxサーバーの/etc/shadowに、対象ユーザーの「!!」となっている箇所へペースト。(置き換える)

▢/etc/psswdも変更必要かもと警告が出ますが、対象ユーザーのアカウント,パスで問題なくログインできれば完了。

 

ユーザー作成時は以下のように第二フィールドが「!!」となっていて、パスワードが未設定の状態なので、ここにコピーしてきたハッシュ値をペーストして上書きします。

hogehoge:!!:19632:0:99999:7:::

/etc/shadow-が/etc/shadowのバックアップになっているので、念のためdiffまたはsdiffコマンドで比較して対象ユーザー以外に変更がないことを確認する。

シャチ
誤操作で他のユーザーがログインできなくなる可能性もあるので、慎重に作業します。

まとめ:/etc/shadowのパスワードを別のサーバーへコピペで移行する

vipw -sコマンドを利用することで、/etc/shadowのパスワードを流用できるため、ユーザー作成時の煩わしさを解消できます。

※同じパスワードでアカウント作成しておいたから、パスワードを変更しておいてね、でおしまいです。

 

ただし、対象ユーザーのパスワード以外も編集してしまうと他の部分に影響が出るので、差分を確認した上で作業完了としましょう。

最後まで読んでいただきありがとうございました。

>
CTR IMG