複数のプラットフォームでパスワードを変更する

複数のプラットフォームでパスワードを変更する

passwd私たちは* nixパスワード変更を標準化しようとしています。 Linuxでは簡単な質問です。

printf "secret\nsecret\n" | passwd username

passwdただし、FreeBSDはこのライブラリを使用するためにバージョンを書き直しましたpam 。システムpamopenpam_ttyconvパスワードを読むと、標準入力をリダイレクトしようとする管理者の試みを倒すためにいくつかの問題が発生します。

FreeBSDで上記の方法を試しても、まだttyにメッセージを表示して対話型の応答を待ちます。 stdinを分岐して強制的にリダイレクトしようとすると、次のメッセージが表示されます。pam_chauthtok: conversation failure

私が知る限り、FreeBSDでは次のものを使用できます。

printf "secret\nsecret\n | pw usermod -n username -h0

しかし、誰かがpamライブラリにstdinリダイレクトを許可する方法を知ることができることを願っています。

答え1

あなたはそれを使用することができますchpass* BSDおよび同様のユーティリティのスクリプトでパスワードを変更するchpasswdLinuxで。どちらもあなたのアカウントに「暗号化された」パスワードを設定することを可能にします - 効果的にパスワードハッシュ。電話してもいいcryptハッシュを計算するPerlまたはPythonスクリプトの関数(ハッシュ関数、ランダムなソルト、および適切な繰り返し数を選択することを忘れないでください)。

答え2

インタラクティブなパスワード入力に関する質問に対する標準的な答えは、次のものを使用することです。予想されるこの場合、passwd コマンドを実行してください。

関連情報