- 締切済み
AIX/HP-UXでパスワード変更シェルを作成したい
AIX/HP-UXで一括でパスワード変更を実行するシェルを 作成したいと考えております。 (最終的には複数サーバの複数ユーザのパスワードを 一括変更したい) そこで、AIXで以下の様なシェルを作成したのですが、 パスワード変更することができませんでした。 -------------------------------------- PASS=$1 "新パスワード USER=$2 "パス変するアカウント名 passwd $USER sleep 5 $PASS sleep 5 $PASS -------------------------------------- passwdコマンド自体は実行されるのですが、 その後の新パスワードが入力されておらず、 passwdコマンドタイムアウト後に新パスワードが 実行され、"新パスワードの文字列"が見つかりません。 となってしまいます。 インターネット等で検索した結果、linuxであれば expectコマンドを使用して、passwdコマンドを実行した 際に出力される「新パスワード:」を待ってから 入力すればよいということがわかったのですが、 linuxでexpectコマンドに相当するものを、AIXでは 見つけることができませんでした。 AIX/HP-UXにおいて、シェルスクリプトにてパスワード 変更を実現する方法をご存知の方がいましたら、 教えてください。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- shige_70
- ベストアンサー率17% (168/946)
#1です。 少し調べてみたのですが、、、AIXはパスワード一括設定出来るコマンドはないようですね。 passwdコマンドも、パイプで入力を流し込んでやっても、どうやら内部で強制的に入力を端末に変えているようなので、結局どうやってもキーボードから入力するしかないようです。しかも、その辺の処理は正確に言うとpasswdコマンドではなくOS内部に組み入れられているようで、どうしようもなさそうです。 最終的には、自前でパスワード暗号化処理を行った上で、/etc/security/passwd ファイルを直接いじるくらいしか手がなさそうです。 がっかりさせるような回答で残念ですが、、、ご了承くださいませ。
- shige_70
- ベストアンサー率17% (168/946)
カテゴリはSolaris系ではなくBSD系の方がよろしいかと思います。 chpasswdというコマンドがあれば、そちらをお使いください。 なければ、下記のようにしてはどうでしょうか。 (sleep 5 ;echo $PASS ;sleep 5 ;echo $pass) |passwd $user これでうまくいかないようでしたら。。。ちょっと手元にAIXマシンがないので、月曜日までお待ちいただければ調べます。HP-UXについてはあいにく持ち合わせておりませんのでご勘弁ください。
補足
確認しましたが、chpasswdはありませんでした。 (linuxのコマンドですか?) ご教授頂きました方法でパスワード変更してみます。 またなにか判りましたら、大変お手数ですが、よろしくお願いします。
お礼
ご確認頂きましてありがとうございました。 シェルで無理ということなので、おとなしくC言語で システムコールを使ったものを作成しようと思います。 スキルが足りないかもしれませんが…