• ベストアンサー

perl から unix コマンドを入力する方法

punchan_jpの回答

回答No.3

回答は marino_cx さんのとおりでいいと思いますが、setuid した スクリプトで外部コマンドを呼び出したりする際には、セキュリティ ホールに十分に気をつけてください。 ちょっとしたミスで root でないユーザが root 権限を容易に取得 できてしまいます。 もっともこういった危険を減らすために、通常の perl は、setuid されている場合に、外部から指定された文字列をそういった危険性 のある操作には与えられないようにしています。これを無理に解除 する方法もありますが、あまりしない方がいいとは思います。

関連するQ&A

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

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

  • unix writeコマンドをPerlから

    unixで、ログインしている誰かにメッセージを送信するwriteコマンドをPerlから実行したいのですが、上手くいきません。 `write john\nThis is test msg`; では、sh[2] This ....とエラーとなります。 writeコマンドは、 write ユーザーid <CR> メッセージ<CR> ctl-D とするようですが、そのあたりが上手くプログラミングできない のが原因のようですが、良く判りません。 判るかた、宜しくお願い致します。 定期的のDISK使用状況をチェックし、FULLになりそうなら、 ログインしているユーザーに通知したいのです。

    • ベストアンサー
    • Perl
  • scanfのようなUNIXコマンドはあるでしょうか

    このカテゴリでよいのかわかりませんが、質問させて頂きます。 OSはHP-UX11.23を使用しています。 スクリプトを実行する際、一旦ストップしたい場所を 指定したいと思います。 その際、scanfのようなUNIXコマンドがあるでしょうか。 ctrl+cなどでは、指定した個所でストップできません。 scanfであれば、キー入力するまでストップできるし、 どのようなキーを入力しても、次の処理に移ることが 可能です。 決まったキーを入力しなければならない場合、間違える とそのスクリプトは終了してしまうと思うので、 scanfのようなUNIXコマンドを教えて頂ければ と思います。 よろしくお願いします。

  • perlスクリプト内でシェルコマンドを実行するには??

    タイトル通りなのですが、perlスクリプト内でシェルコマンドを実行させる方法が分からなく、困っています。 実行したいシェルコマンドはUNIXのcrontab なのですが・・。 また、perlスクリプト内以外でシェルコマンドを実行する方法はあるのでしょうか?? どなたか分かる方いらっしゃいましたらご教授いただけると幸いです。よろしくお願いします。

    • ベストアンサー
    • Perl
  • UNIXのコマンドを教えて下さい。

    AAAAという名前のテキストファイルにBBBBという文字列が含まれる行の最後に CCCCの文字列を追加したい場合、どのようなコマンドを使ったらよいでしょうか?

  • perlでユーザーのパスワードを自動で2回入力するスクリプトは可能ですか。

    RHL8.0でperlを使ってユーザー追加の自動スクリプトを作りたいと考えています。あらかじめアカウントとパスワードがタブで区切られているテキストファイルを用意して順次変数に代入されるようになってます。 ユーザーを追加するのは自動でできるのですが、パスワードの入力はコマンドラインとの応答があるので。プログラムもそこでとまってしまいます。 「パスワードを入力してください。」とシステムが聞いてきたときに、自動でそれに応答して「******」と変数を返すようなスクリプトは可能なのでしょうか。 もちろん、別にユーザーの自動追加方法がありましたら大歓迎です。

  • unixのreadコマンドで入力を指定時間待つというオプションはある?

    unix系のreadコマンドでプロンプトからの入力を待つ際に、 指定時間入力を待って、入力が無ければreadコマンド失敗、 となるようなオプションはあるのでしょうか? solarisのBシェルでスクリプトを書きます。 以上、よろしくお願いします。

  • UNIXコマンド、変数について

    入力された文字を変数としてコマンドへ渡したいのですが上手く行きません 入力された文字列を変数ywcに取り込みsayコマンドで発音させたいのですが 取り込まれたywcの中のある特定の文字だけ除外もしくは置き換えをしたいのですが上手く行きません say '" & ywc & "' とsed -e 's/'//g'を組み合わせれば良いのかな?と思っているのですがなかなか上手く行きません 変数の中に’(シングルクォータ)があるとエラーになる為除外したいというのが理由です もしくは始めから'を変数の中に取り込まないようにはできますでしょうか? コマンドに詳しい方ご教授お願いします Say コマンドはMac固有のコマンドですがコマンドが違うだけで基本とBashは一緒だと思いますのでユーザー数と経験者の多いこちらで質問させてください よろしくお願いします

  • OSXに、useraddコマンドは無いのでしょうか?

    現在ターミナルを使用中ですが、useradd/adduserが見つかりません。 Solaris10とかなり使い勝手が違うので戸惑っております。 1.ユーザ追加コマンドは無いのでしょうか?コントロールパネルで追加するしかないのでしょうか? 2.OSXはBSDベースということですが、普通のBSDのOSの入ったUNIX機として使うには違いが大きすぎなのでしょうか? 3.ユーザ情報は、/etc/passwdで見るのが一般的なのでしょうか? ご存知のものだけでも結構ですので、何かしら回答いただければ幸いです。

    • 締切済み
    • Mac
  • シェルスクリプトのbashとperlについて

    シェルスクリプトのbashとperlについて 今さら気づいたのですが、PerlもUNIXのコマンドやシェルスクリプトとして使用できるということでしょうか。 RubyやPHPをUNIXのコマンドやシェルスクリプトとして使用することはできますでしょうか。 学ぶとしたら、bashとPerlのどちらが良いでしょうか。 また、シェルスクリプトはどんな用途や利点がありますでしょうか。 Webアプリケーションによるバックアップやログをタイマーでセットして自動的に取得したりすることは可能でしょうか。