質問: perlでunixのコマンドとパスワード入力 ブラウザでユーザー名とパスワードを入力して passwdコマンドでパスワードを変更するプログラムを作っています。 プログラム中で $result=system("passwd $user"); と実行すると、マシンは new unix password: の状態になって、パスワードの入力を待っていると思うのですが、 この状態でどうやってパスワード$passをマシンに送ったらいいのか わかりません。キーボードから読み取るのではなく、 プログラムですぐにパスワードを送りたいのです。 標準入力にフラッシュする?というのでしょうか。 system($pass); としてもうまくいきません。 osはfedoracoreで、スクリプトはルート権限で動いています。 どうかご教示ください。
回答: >new unix password: パスワード の次が出ないという事でしたので、次の文字列の表示待ちで 止まっているのかと思いましたが、改行自体がされていない のかもしれませんね。 スクリプト中の【send "$passwd\n"】の部分ですが、 【send "$passwd\n\r"】に変更して実行したらどうなりますでしょうか。