スクリプトのあるコンピュータからシャドウファイルエントリをインポートし、別のコンピュータでそのユーザエントリを見つけてその行を置き換えようとします(複数のコンピュータでパスワードを更新するため)。
これはユーザー生成スクリプトの一部であるため、最初に各コンピューターでユーザーが作成され、次にパスワードがサーバーに追加され、別のワークステーションにコピーされます。
答え1
この問題を処理するより簡単な方法がたくさんあるという上記の意見に同意しながら、実際の問題に関するいくつかのヒントは次のとおりです。
$MY_USER="anything"
HASH=$(ssh <source_server> "cat /etc/shadow | grep ^$MY_USER:" | awk -F: '{print $2}')
ssh <target_server> "echo '$MY_USER:$HASH' | chpasswd -e"
特定のユーザーの変数を置き換え、MY_USER
スクリプトの最後の行を使用してサーバーを繰り返します。
その他のコメント:
- すべてのサーバーが同じパスワードエンコーディングを使用していることを確認する必要があります。
- これは、ルートパスワードへのアクセス権がなく、nopasswd sudoルールセットがない場合に
sudo -S
便利です。 - パスワードを変更する前に、パスワードにアクセスする他の方法があることを確認してください。