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とは
- ユーザーのパスワード情報が保存されているファイルで、各項目がセミコロン「:」で区切られ、第二フィールドがハッシュ化されたパスワードになっています。
パスワードを別の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のパスワードを流用できるため、ユーザー作成時の煩わしさを解消できます。
※同じパスワードでアカウント作成しておいたから、パスワードを変更しておいてね、でおしまいです。
ただし、対象ユーザーのパスワード以外も編集してしまうと他の部分に影響が出るので、差分を確認した上で作業完了としましょう。
最後まで読んでいただきありがとうございました。