こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

バッチ処理からのユーザ登録+パスワード設定

RedHat Linux 4.2 でユーザの登録+パスワードの設定を
プログラムから行おうといているのですが、いい方法が見つかりません。

現在はプログラムから「adduser」コマンドでユーザ登録
することはできています。
その後、パスワードの設定に「passwd」コマンドを利用しようとえていましたが、「passwd」コマンドはパスワードを再入力するようきいてくるので正常に起動されません。
コマンド:”#/bin/passwd < /パスワードを記述したファイル”

どなたかよい方法をご存知に方、お教えください。

追伸)
RedHat Linux 6.0 では「newusers」を使用して出来たのですが、私の利用している RedHat Linux 4.2 が存在しないの利用できていません。

投稿日時 - 2000-07-15 00:11:19

QNo.5073

困ってます

質問者が選んだベストアンサー

パスワードを自動で更新するだけなら、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入れとく必要があるんですが...

投稿日時 - 2000-07-15 17:13:07

お礼

詳細な回答ありがとうございました。m(。_)m

投稿日時 - 0000-00-00 00:00:00

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問