OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

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

  • 困ってます
  • 質問No.5073
  • 閲覧数381
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

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

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

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

追伸)
RedHat Linux 6.0 では「newusers」を使用して出来たのですが、私の利用している RedHat Linux 4.2 が存在しないの利用できていません。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル8

ベストアンサー率 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:00
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

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

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ