人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Perlでの質問です。

Linuxの設定がいくつかあるのですが設定を1つのPerlにまとめたいと思ってます。
その中でパスワードの設定をpasswdコマンドで設定する部分があります。
perlでsystemを叩いて設定してやろうと思っておりますが
passwdをすると必ずnew passwordと出てきて2回入力をしないといけなくなります。
この返り値として受け取って直接パスワードを設定したいのですが
返り値を受け取る方法がわかりません。
なにか良い方法があれば教えていただければと思います。

●質問者: quocard
●カテゴリ:インターネット ウェブ制作
✍キーワード:Linux password Perl コマンド パスワード
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● b-wind
●23ポイント

perlipc - Perl $B$N%W%m%;%94VDL?.(J

試していないけど、open でどうにかならないでしょうか。


perlipc - Perl $B$N%W%m%;%94VDL?.(J

入出力ともに必要なら、open2 や pipe を使う必要があるかもしれません。

◎質問者からの返答

ありがとうございます。

知らない関数もありましたので参考にさせていただきます。


2 ● lunlumo
●23ポイント

openでは出来ないはずです。手間ですがExpectを使いましょう。

http://www-06.ibm.com/jp/developerworks/linux/020614/j_l-sc1.htm...

◎質問者からの返答

ありがとうございます。

Expectで確かに出来そうですね。

試してみます。


3 ● practicalscheme
●22ポイント

passwd --stdin <username> で直接新しいパスワードをpipeで送り込むことができますよ。root権限が必要ですが。

◎質問者からの返答

すでにadminでログインしている状態のときは

イメージ的には下記の感じでいいのでしょうか?

passwd --stdin admin || password


4 ● tezcello
●22ポイント

パスワードの設定を、useradd(または usermod)を使うと再入力の必要が無いです。

ただし、crypt() で暗号化済みである必要がありますが。


他のセットアッププログラム等にならって、bash で書いてみてはどうでしょう?シェルスクリプトの中に perl も織込めるので、全てを bash で組まなくてもいいですけど。

会話型のプログラムを実行する時は、expect を使うのが一般的だそうですが、ディストリビューション(あるいは選択した構成)によってはインストールされていないかも知れません。

◎質問者からの返答

bashは思いつきませんでした。

そちらでやるという手もありますね。

参考にさせていただきます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ