• ベストアンサー
  • 困ってます

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

  • 質問No.5073
  • 閲覧数400
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0
RedHat Linux 4.2 でユーザの登録+パスワードの設定を
プログラムから行おうといているのですが、いい方法が見つかりません。

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

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

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

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

  • 回答No.1
  • ベストアンサー

ベストアンサー率 67% (25/37)

パスワードを自動で更新するだけなら、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入れとく必要があるんですが...
お礼コメント
noname#1261
詳細な回答ありがとうございました。m(。_)m
投稿日時:0000/00/00 00:00
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ