シェルでパスワードリセットプロセスを自動化する方法はありますか?エスケープ文字がありませんか?

シェルでパスワードリセットプロセスを自動化する方法はありますか?エスケープ文字がありませんか?

チーム、私たちは複数のホストのパスワードをリセットするために90日ごとに特定の活動を行います。今私のクエリは次のようになります。

私のパスワードに特殊文字が含まれています。ファイル内の既存のパスワードを見つけて、同じホスト上の他のtxtファイルに記載されている値に置き換えるのに役立つミニシェルスクリプトはありますか?

たとえば、oldfile.txt(ファイルのどこにでも古いパスワードを含む)
newfile.properties(oldfile.txtのパスワードを置き換える新しいパスワードを含む)

各パスワード文字列値をエスケープするのは非常に難しい作業であることがわかります。上記のように新しいファイルから古いファイルに転送する方法はありますか?

ありがとう、

答え1

使用chpasswd。 1つ以上の行を含む標準入力を読み取り、username:passwordそれに応じてそのユーザー名のパスワードを変更します。

パスワードが暗号化されていない場合は暗号化されます。

chpasswd-eこのオプションは、パスワードが暗号化されている場合に便利です。 (強くお勧めします。パスワードをプレーンテキストとして保存することは決して良い考えではありません。)

sed他のawk便利なツール/スクリプト言語を使用して、perlユーザー名とパスワードを必要な形式で出力できます。username:passwordchpasswd

man chpasswd詳細は参照してください。

関連情報