dポイントプレゼントキャンペーン実施中!

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において、シェルスクリプトにてパスワード
変更を実現する方法をご存知の方がいましたら、
教えてください。
よろしくお願いします。

A 回答 (2件)

#1です。



少し調べてみたのですが、、、AIXはパスワード一括設定出来るコマンドはないようですね。
passwdコマンドも、パイプで入力を流し込んでやっても、どうやら内部で強制的に入力を端末に変えているようなので、結局どうやってもキーボードから入力するしかないようです。しかも、その辺の処理は正確に言うとpasswdコマンドではなくOS内部に組み入れられているようで、どうしようもなさそうです。

最終的には、自前でパスワード暗号化処理を行った上で、/etc/security/passwd ファイルを直接いじるくらいしか手がなさそうです。

がっかりさせるような回答で残念ですが、、、ご了承くださいませ。
    • good
    • 0
この回答へのお礼

ご確認頂きましてありがとうございました。
シェルで無理ということなので、おとなしくC言語で
システムコールを使ったものを作成しようと思います。
スキルが足りないかもしれませんが…

お礼日時:2004/11/30 18:33

カテゴリはSolaris系ではなくBSD系の方がよろしいかと思います。



chpasswdというコマンドがあれば、そちらをお使いください。
なければ、下記のようにしてはどうでしょうか。

(sleep 5 ;echo $PASS ;sleep 5 ;echo $pass) |passwd $user

これでうまくいかないようでしたら。。。ちょっと手元にAIXマシンがないので、月曜日までお待ちいただければ調べます。HP-UXについてはあいにく持ち合わせておりませんのでご勘弁ください。

この回答への補足

確認しましたが、chpasswdはありませんでした。
(linuxのコマンドですか?)
ご教授頂きました方法でパスワード変更してみます。
またなにか判りましたら、大変お手数ですが、よろしくお願いします。

補足日時:2004/11/29 05:11
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!