質問: バッチ処理からのユーザ登録+パスワード設定 redhat linux 4.2 でユーザの登録+パスワードの設定を プログラムから行おうといているのですが、いい方法が見つかりません。 現在はプログラムから「adduser」コマンドでユーザ登録 することはできています。 その後、パスワードの設定に「passwd」コマンドを利用しようとえていましたが、「passwd」コマンドはパスワードを再入力するようきいてくるので正常に起動されません。 コマンド:”#/bin/passwd < /パスワードを記述したファイル” どなたかよい方法をご存知に方、お教えください。 追伸) redhat linux 6.0 では「newusers」を使用して出来たのですが、私の利用している redhat linux 4.2 が存在しないの利用できていません。
回答: パスワードを自動で更新するだけなら、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 donechgpass.ep と chpass.sh を chmod 755 しておいて スーパユーザになったあとに # ./chpass.sh userpass とすればいいでしょう。 ただし、パスワードが短いとか不正なやつは、エラーで 止まってしまいますので気をつけてください。 この方法だと、redhatに限らず、freebsdでも、solaris でも対応可能です。expect入れとく必要があるんですが...