私はssh
、mkdir
をPerl CGIスクリプトから実行しようとしています。動いていない。しかし、通常のPerlスクリプトでは正常に動作しています。 Perl CGIスクリプトでコマンドを実行する方法を教えてもらえますか?Perl CGIでは、どのようにUNIXコマンドを使用できますか?
答えて
システム()またはpopen()がおそらくあなたが探しているものです。汚れていると思われる場合は、バックチックも使用できると思います。
あなたがウェブサーバを経由して、このスクリプトを実行している場合、チャンスはアクティブなユーザー(例えば「誰も」、「WWW」など)がmkdir
とssh
のようなコマンドを実行するために必要な権限を持っていない可能性があります。もしそうなら、それはperlが修正できるものではありません。ファイルを作成し、コマンドを実行するように設定してWebユーザー権限を持っている、それはまた、セキュリティ上の問題である
print "The active user is: ", `whoami`;
:あなたは、アクティブなユーザーのようなもので誰であるかをテストすることができます。
はいWebサーバー経由で実行しています。ですから、Perl CGI経由でSSHを使って別のマシンにログインする方法はありますか?SSHではパスワードは必要ありません。 –
@ user970553私はすでにあなたにその質問に答えるために必要な情報を与えました。 – TLP
unixコマンドを実行する必要がありますか? Perlにはmkdirが組み込まれており、SSHを処理するモジュールがあります。通常、CGIプロセスは機能やシステムへのアクセスが制限されます。 Perlではより多くのことを行うことができます。
ソリューションに感謝 –
- 1. Perl CGI Webアプリケーションでどのようにセッションを維持できますか?
- 2. PHPでPerl CGI :: Sessionsデータを使用できますか?
- 3. Perl CGIプログラムをどのように構造化しますか?
- 4. mvn verifyコマンドはどのように使用できますか?
- 5. どのようにPythonでウィンドウ10でUnixを使用できますか?
- 6. Unix findコマンドのpath引数にvariableをどのように使用できますか?
- 7. Perl URIクラスはどのように使うべきですか?
- 8. Perl CGIプログラムでprintfで色付き出力を取得するにはどうすればよいですか?
- 9. は、Perl CGIのバグのよう
- 10. PerlのCGI、私は私のCGI Perlスクリプトでこれを行うヴァール
- 11. UNIXコマンドmvとrmはオープンファイルでどのように動作しますか?
- 12. どのようにしてPerl CGIスクリプトの起動時間を短縮できますか?
- 13. GTK3をperlでどのように使うことができますか?
- 14. どのように単語をPerlでラップできますか?
- 15. PerlでJSONをどのように解析できますか?
- 16. RubyでCGIクッキーはどのように動作しますか?
- 17. どのように私はperlを使用してクリックメソッドを使用してファイルをダウンロードできますか?
- 18. Perlでは、あるコマンドの出力を別のコマンドの入力にどのようにパイプしますか?
- 19. CGI使用時にperlでHTTPヘッダを取得する方法
- 20. どのようにして、すべての可能なUNIX(シェル)コマンドをプログラムで実行できますか?
- 21. Unix mailtoコマンドをsqrで使用する
- 22. Unixの-sizeは、UNIXコマンドで
- 23. WindowsのPerl CGIスクリプトからバックグラウンドプロセスをフォークするにはどうすればよいですか?
- 24. Perl CGIスクリプトで画像を表示するにはどうすればよいですか?
- 25. Perlでは、オペレーティングシステムにどのようにメモリを解放できますか?
- 26. Perl 6でUnixソケットを扱う方法はありますか?
- 27. CGI :: Session :: Driver :: mysqlを使用したPerl CGI ::セッション
- 28. Perlのsystem()は、実行中のコマンドをどのように表示できますか?
- 29. Perl CGIプログラムでURLパラメータを読み取るにはどうすればよいですか?
- 30. perl CGIスクリプトのlinux mailコマンドを使用した電子メールの送信
実際のコードは面白いでしょう。どのコマンドが "通常のスクリプト"では動作しますが、 "CGI"では動作しませんか?どのようなエラーメッセージが表示されますか( '$!')? –
私はシステムを使用しています( "ssh username @ machinename 'ls/directoryname'") IN demo.cgi私は同じコマンドを使用しています。通常のperlスクリプトでうまく動作するディレクトリを作成するシステムコマンドです。 perl cgiではそうではありません。コマンドは次のとおりです。system( "mkdir dirname"); –
'system'はstdoutをキャプチャしません。もしbashでスクリプトを試しているときに "動く"と思えば、それは端末に印刷されたperlプロセスのバックグラウンドでstdoutが見えるからです。このデータはperlでは利用できません。おそらくウェブサーバにもないでしょう。 'qx()'やbackticksを使って標準出力をキャプチャします。 – TLP