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

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

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

RedHat Linux 4.2 でユーザの登録+パスワードの設定を プログラムから行おうといているのですが、いい方法が見つかりません。 現在はプログラムから「adduser」コマンドでユーザ登録 することはできています。 その後、パスワードの設定に「passwd」コマンドを利用しようとえていましたが、「passwd」コマンドはパスワードを再入力するようきいてくるので正常に起動されません。 コマンド:”#/bin/passwd < /パスワードを記述したファイル” どなたかよい方法をご存知に方、お教えください。 追伸) RedHat Linux 6.0 では「newusers」を使用して出来たのですが、私の利用している RedHat Linux 4.2 が存在しないの利用できていません。

noname#1261
noname#1261

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

  • ベストアンサー
  • 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

  • パスワードを期限切れにしたい

    RedHat Enterprise Linux ES2.1を使用しています。 新しいユーザーを作成し、そのユーザーにすぐパスワードを変更してもらうため、 新しいユーザーを作成し、最初ののパスワードを設定した時点で、期限切れにしたいのです。 色々調べて、「passwd -e ユーザー名」のコマンドでできると書いてあるページを見つけましたが、 やってみたところ、unknown optionとなり、ダメでした。 UNIXではできるようですが、Linuxでできる方法はないのでしょうか。

  • パスワード設定していないユーザーのログイン

    いつもお世話になっております。 linuxで、useraddした後、passwdコマンドでパスワードを設定していないユーザーがいます。ここでは、postgresとします。 このユーザーに一般ユーザーからなるときに、 $su - postgres としますが、パスワードがきかれて、何も入力しないと、 invalidになります。(centos5) パスワードを設定しないと、一般ユーザーからログインできないのでしょうか。 ちなみに、rootからpostgresですと、ログインできます。 $su - $su - postgres お手数をおかけしますが、なにとぞご教授お願いいたします。

  • ドメインユーザーの一括登録・詳細設定

    今回、業務で2000アカウントほどドメインに新規で登録することになったのですが、とても手作業で登録できる量ではないので、adduserかnet userでのバッチファイルでの一括登録を考えています。 ですが、上記コマンドだと詳細な設定がちょっと難しい?ように思えます。 今回設定したいのは ・ユーザーのアカウントとパスワード ・特定のユーザーはパスワード期限がなく、ある特定のユーザーはパスワードの有効期限を設定したい。 ・特定のユーザーは初回ログオン時にパスワードの変更が必要だが、特定のユーザーは特に変更しなくてよい(ダイアログを出さない) ・・・というユーザーごとにアカウント&パスワードのポリシーが違うのですが、これらの設定をコマンドから行うことは可能でしょうか?

  • サーバ移行のユーザ移動&パスワード

    初心者ですいません。 現在Turbolinux6を使っています。 最近PCを購入してTurbolinux7をインストールしたパソコンがあります。 Turbolinux6の方には100個ぐらいのアカウントを作っていますが、これをTurbolinux7にユーザ、パスワードを移動させたいのですがまともにadduserしてpasswdを設定しなければならないのでしょうか? もし良い方法がございましたらご教授頂けると大変助かります。

  • Bシェルでのユーザパスワード変更

    Bシェルのスクリプトを実行しユーザパスワードの変更を自動で 行いたいと思っています。 #!/bin/sh passwd 変更したいユーザ名 abcd ・・・(変更したい人のパスワードです[新しいパスワード用]) abcd ・・・(変更したい人のパスワードです[新しいパスワードの聞きなおし用]) このようにシェルを組み実行したところ コマンドプロンプトにてパスワードの入力 を聞かれてしまい、シェルにパスワードを 指定しているのですが認識してくれません。 この問題を解決するにはどのような シェルの記述方法があるのでしょうか。 ご回答よろしくお願いします。

  • PuppyLinux 既存ユーザのパスワードは?

    LINUX初心者です. PppyLinux 4.3.1を使用しています./etc/passwd を見ると,インストール直後でも いくつもの既存ユーザが登録されています. これらのユーザのパスワードはどこかで公開されているのでしょうか? (rootは,woofwoofと,どこかで見たことがありますが?) それとも,利用者が変更の必要がなければ知る必要がないので,公開されていないのでしょうか?

  • Linuxでuseraddコマンドでユーザを作成

    したときにそのユーザのパスワードは何になるのでしょうか? すぐにpasswdコマンドでパスワードを登録するのが普通ですが もしpasswdコマンドしなければ そのユーザのパスワードは何になるのでしょうか?

  • 現在MySQLの特権ユーザー(root)にパスワードが設定されているかどうか知る方法。

    シェルの超初心者です。 現在MySQLの特権ユーザー(root)にパスワードが設定されているかどうか知るには、どのようなコマンド(方法)を使えばよいのですか? サーバは、レンタルサーバです。 CentOS 5.3(Red Hat Enterprise Linux 5と別コマンドになる場合は、Redhatのコマンドも教えて下さい。) PHP 5.1.x MySQLの特権ユーザー(root)にパスワードを設定する方法は、下記サイトでわかりました。 http://y-kit.jp/saba/xp/mysqlsetup.htm#root よろしくお願いします。

  • MySQLにユーザを登録したい

    のですがLinuxではどのようなコマンドで登録するのでしょうか? パスワードを設定するのは mysqladmin -u root password 'xyz' -p でできることは分かるのですが 最初から存在するroot以外のユーザを作る方法がわかりません

    • ベストアンサー
    • MySQL
  • パスワードの変更

    RedHat7.2Jを利用しております。 あるユーザ(rootではありません)のパスワードをpasswdコマンドで変更しようとしたのですが、新パスワードを入力すると it is based on a dictionary word と出てきてしまい受け付けてくれません。 何度かトライすると最後は passwd:Authentication toke manipulation error となって終了してしまいます。 新パスワードはある固有名詞なので一般的な名詞ではないですし、以前使っていたものでもないはずなのですが、いずれにせよ強制的に新パスワードを受け付けさせる方法は無いものでしょうか?