• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:バッチ処理からのユーザ登録+パスワード設定)

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

このQ&Aのポイント
  • RedHat Linux 4.2でユーザの登録とパスワード設定をプログラムから行いたいが、適切な方法が見つからない。
  • 現在はプログラムから「adduser」コマンドを使用してユーザ登録を行っているが、パスワードの設定に「passwd」コマンドを利用する際にパスワードの再入力が求められるため、正常に起動されない。
  • RedHat Linux 6.0では「newusers」を使用することで問題なくユーザ登録とパスワード設定ができるが、RedHat Linux 4.2では利用できない。

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

  • ベストアンサー
  • ita3
  • ベストアンサー率67% (25/37)
回答No.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入れとく必要があるんですが...

noname#1261
質問者

お礼

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

関連するQ&A