- ベストアンサー
バッチ処理からのユーザ登録+パスワード設定
- RedHat Linux 4.2でユーザの登録とパスワード設定をプログラムから行いたいが、適切な方法が見つからない。
- 現在はプログラムから「adduser」コマンドを使用してユーザ登録を行っているが、パスワードの設定に「passwd」コマンドを利用する際にパスワードの再入力が求められるため、正常に起動されない。
- RedHat Linux 6.0では「newusers」を使用することで問題なくユーザ登録とパスワード設定ができるが、RedHat Linux 4.2では利用できない。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
パスワードを自動で更新するだけなら、expect が使えます。 RedHat4.2で入って居なければ、rpmで探せば見つかると思 います。 例えば、UIDとパスワードを ------ userpass ------- user1,password1 user2,password2 . . . ----------------------- というファイルで作成しておいて、 次のexpectスクリプトを作成します。 ----- chgpass.ep #!/usr/local/bin/expect set password [lindex $argv 1] spawn passwd [lindex $argv 0] expect "*password:" send "$password\r" expect "*password:" send "$password\r" expect eof --------------------- 次に、実際に動かすためのスクリプトを こんな感じで作成します。 ---------- chgpass.sh ---- #!/bin/sh for i in `cat $1` do USER=`echo $i | cut -f 1 -d,` PASS=`echo $i | cut -f 2 -d,` ./chgpass.ep $USER $PASS done --------------------------- chgpass.ep と chpass.sh を chmod 755 しておいて スーパユーザになったあとに # ./chpass.sh userpass とすればいいでしょう。 ただし、パスワードが短いとか不正なやつは、エラーで 止まってしまいますので気をつけてください。 この方法だと、RedHatに限らず、FreeBSDでも、Solaris でも対応可能です。Expect入れとく必要があるんですが...
お礼
詳細な回答ありがとうございました。m(。_)m