• ベストアンサー
  • 暇なときにでも

passwdにリダイレクトする方法

会社で使用しているプログラムで20項目ほどを入力するとCFに状態監視用の制御OSとしてlinuxを書き出してくれるものがあります。 その20項目を打ち込むのが大変なのでリダイレクトでテキストファイルから入力したいと思っています。 半ばうまくいったのですが、パスワード入力の部分のみうまくいきません。passwdを呼び出しているようですがうまく流れません。 実際、passwdに直接テキストからリダイレクトしてもやはり同じ症状でした。 ご存知の方いらっしゃったら教えていただけますでしょうか。 よろしくお願いいたします。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数280
  • ありがとう数1

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

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

#1ですが、名前を思い出しました。 expect (Tcl の拡張) 又は expect.rb を使えばよいようです。

参考URL:
http://www.linux.or.jp/JM/html/expect/man1/expect.1.html

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 やってみます!

関連するQ&A

  • UNIXのpasswd

    UNIXユーザのパスワードを変更するAPIを知りませんか?passwdコマンドはTTY入力が必要なのでNGです。 アプリケーションの中からパスワード変更したいのですが該当するAPIをご存じの方、教えてください。 OSはSolarisです。

  • テキストファイルの文字を消す方法

    Windows上で作ったテキストをLinuxで開くと「^M」の制御コードが見えてしまいます。 この制御コードの混じったテキストをプログラムで消そうとしているのですがいまいち、これといった方法が思いつきません。 普通テキストファイルの特定の文字(制御コードでなくとも)を消す場合どのようにするのでしょうか? 私の環境としては Windows2000 VC++ です。 よろしくお願いします。

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

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

その他の回答 (1)

  • 回答No.1

passwdコマンドもそうですが、getpass()ライブラリルーチンは、リダイレクトを受け付けないように作られています。 そのため、リダイレクトやパイプではお望みのことはできません。 疑似端末を使ってpasswdなどにスクリプトからパスワードを与えることができるユティリティがあったはずですが、名前をど忘れしてしまいました。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • PerlでUNIXのコマンドとパスワード入力

    ブラウザでユーザー名とパスワードを入力して passwdコマンドでパスワードを変更するプログラムを作っています。 プログラム中で $result=system("passwd $user"); と実行すると、マシンは New UNIX password: の状態になって、パスワードの入力を待っていると思うのですが、 この状態でどうやってパスワード$passをマシンに送ったらいいのか わかりません。キーボードから読み取るのではなく、 プログラムですぐにパスワードを送りたいのです。 標準入力にフラッシュする?というのでしょうか。 system($pass); としてもうまくいきません。 OSはFedoraCoreで、スクリプトはルート権限で動いています。 どうかご教示ください。

  • AIX/HP-UXでパスワード変更シェルを作成したい

    AIX/HP-UXで一括でパスワード変更を実行するシェルを 作成したいと考えております。 (最終的には複数サーバの複数ユーザのパスワードを  一括変更したい) そこで、AIXで以下の様なシェルを作成したのですが、 パスワード変更することができませんでした。 -------------------------------------- PASS=$1   "新パスワード USER=$2   "パス変するアカウント名 passwd $USER sleep 5 $PASS sleep 5 $PASS -------------------------------------- passwdコマンド自体は実行されるのですが、 その後の新パスワードが入力されておらず、 passwdコマンドタイムアウト後に新パスワードが 実行され、"新パスワードの文字列"が見つかりません。 となってしまいます。 インターネット等で検索した結果、linuxであれば expectコマンドを使用して、passwdコマンドを実行した 際に出力される「新パスワード:」を待ってから 入力すればよいということがわかったのですが、 linuxでexpectコマンドに相当するものを、AIXでは 見つけることができませんでした。 AIX/HP-UXにおいて、シェルスクリプトにてパスワード 変更を実現する方法をご存知の方がいましたら、 教えてください。 よろしくお願いします。

  • htpasswdは前方一致ですか?

    未だにSunOS 5.6を使っているのでが・・・ そこで不思議な現象を発見したので教えて下さい。  ApacheのBasic認証のパスワードの生成に Linux xxx 2.4.18-23の htpasswd -b を使用して、rcp で SunOS 5.6 に転送しています。 通常の認証は問題なく動作していますが、パスワードに正しい値の後ろに任意の文字を追加したパスワードを入力しても認証されてします。  例  正しいPasswd: 1234  間違って認証されるPasswd: 12345  *4の後ろに5が追加されている  Passwdが前方一致されているように感じるのですが、これは正しい動作なのでしょうか?

  • perl CGIでUNIXパスワード変更

    お世話になっています。 perlCGIを使用して、Linuxのパスワード変更をすることは可能でしょうか? どう書いたら良いかご存じの方いらっしゃいましたら教えてくださいm(_ _)m Linuxのコマンドラインから操作する場合は、 $ passwd $ (current)UNIX password:現在のパスワード $ NEW password:新パスワード $ Retype new password:新パスワード (↑の現在のパスワード、新パスワードはWEBから入力です。) の操作なので、system関数を使用して出来ないものかと思ったのですが…。 どうしたものでしょう…。 よろしくお願い致します。

    • ベストアンサー
    • CGI
  • javascriptでテキストファイルを作成したい

    javascriptを勉強していて演算した結果をテキストファイルにして、その結果をテキストファイル内に書き込んで新しくデスクトップに作成するというプログラムを作りたいと考えています。 ですが、まずは以下の条件を満たすプログラムの内容を教えていただきたいと思います。 私はHTMLと同時にjavascriptを作っているのですがとりあえず、 ・「テキストファイルの作成」というボタンをHTML内に作ります。 ・そのボタンを押すとjavascriptのfunctionが動作し、「テキストの書き込みに成功しました」という内容が書かれたテキストファイルがデスクトップに新たに作成される。 というプログラムを知りたいです。 基礎的な原理だけを知りたいので上の条件を満たすプログラムを教えていただきたいと思います。 テキストファイルをデスクトップに作る方法と、作るテキストファイルにどのようにしてテキスト内容を書き込めばいいのか分かりません。 HTMLの部分がめんどくさければjavascriptの部分だけでも構いません。 よろしくお願いします。

  • Linux サーバのユーザ情報を他のサーバへ

    今回、サーバのOSをLinuxからRedHatに変更しようと思っています。 そこで、質問なのですが、ユーザ情報をそのまま別サーバへ移すには、 どうしたら良いのかお伺いしたいのです。 単純にpasswdファイルやgroupファイルのコピーではダメだと思うのですが、 どうしたら別のサーバへユーザ情報を移せるのかわかりません。 ホームディレクトリを作成するには、passwdファイルを作成しなおす必要がありますよね? しかし、大量のユーザを手で入力するのは無理があるし、 タイプミスを考えるとあまり現実的ではありません。 更に、ユーザのパスワードはユーザが管理しているので初期値と変わっている可能性があり、 管理者にはわかりません。 パスワード情報を正しく取り出し、ユーザ情報を別サーバに同じ内容で移すにはどうしたらよいでしょう? どなたか教えていただけませんでしょうか?

  • 空欄を含む文字列のテキスト

    C言語についての質問です。宜しくお願いします。 以下の書式で表されたテキストファイルを読み込む場合を考えます。 1 2   配列nは要素数が1個,配列mは要素数が2個であることを表します。 9    そして,nの要素は9,mの要素は5と8です。 5    つまり n[0] = 9, n[1] = {5,8} といった具合に格納したいのです。 8    nの要素数i個,mの要素数j個について行いたいのですが,どうすればいいでしょうか。 プログラムはscanf等で入力待ちの状態で,データはテキストファイルからリダイレクトします。

  • テキストファイルを標準出力したいのですが

    基本的な質問で申し訳ないのですが、デスクトップ上に作製したテキストファイル(test.txt)をリダイレクトでプログラムに入力し、標準出力(モニタに出力)したいのですがテキスト入力の方法がよく分かりません。 while、getcharを用いて1文字ずつファイルの終端になるまで読み込むので、次のものを書いたのですがテキストファイルの指定方法がわからず行き詰っております( 『 < 』 を使うようなのですが・・・) 使用しているソフトはCPad for Borland C++ Compilerで、書いたものは以下になります。 ご回答お願い致します。 ------------------------------------------------- #include<stdio.h> int main() { int c = 0; while(c = getchar()) != EOF{     printf("%c",c); } return 0; } -------------------------------------------------

  • Linuxでフリーwifiを使う方法

    Linuxでフリーwifiを使う方法を教えてください。 パスワードはないけど接続するとページが表示されてメールアドレスとかを入力すると無料で使えるやつです。 スマホで接続すると入力するページが出てくるんですがLinuxだとwifiに接続しても何も出てきません。 どうすれば使えるようになりますか? OSはDebianです。

  • テキストファイルにてデータ管理

    お世話になっております。 http://oshiete1.goo.ne.jp/qa4005498.html http://oshiete1.goo.ne.jp/qa4047511.html これまで上記ページにてDBを使わずにテキストファイルにてデータ管理するアドバイスをいただき、テキストエリアに入力したものをテキストファイルに登録することが出来ました。 こんな感じ。 01<>プログラム 01_01<>PHP 01_02<>javascript と入力したものを、テキストファイルに 01  プログラム 01_01 PHP 01_02 javascript に登録(半角数値と文字の間はスペース)。 そこで、テキストファイルに登録されたデータを修正・削除する管理画面を作っているのですが、テキストファイルからデータを呼び出し、file()を用いてデータを配列にし、for文で各データをテキストフォームに表示させるところまで出来ましたが、以下の点についてが分からず、アドバイスを頂ければと投函させていただきます。 1.修正する場合、テキストファイルのデータを配列にして各データをテキストフォームにて表示させているが、修正する場合、どのような流れになるのか?(テキストファイルのデータは改行にて登録されていますが、テキストファイルから読み込んだとき配列にしているので、適正な流れが分かりません) 2.テキストファイルのデータを配列にし、各テキストフォームに表示させた際、削除するための機能と考え、各データ毎にチェックボックスを設けていますが、配列データの任意の場所を削除したとき、再度テキストファイルに改行を含んだデータとして登録するには、どういった流れ(プログラム?関数?)になるのか? 以上、皆さんお忙しいとは思いますが、お知恵を頂戴出来れば幸いです。宜しくお願い致します!

    • ベストアンサー
    • PHP