php システム コマンドの実行結果が Web ページとコマンド ラインで一致しない 皆さん、こんにちは。ファイル a.php の内容は次のとおりです。
PHP コード
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
<?
$str = " /opt/rpm/bin/rpm -bb --target i686--linux /tmp/test.spec";
system($str);
?>
ログイン後にコピー
http://192.168.1.1/a.php を使用して実行すると、結果は次のようになります。
HTML コード
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->Building target platforms: i686--linux Building for target i686--linux Processing files: VTCUAL06.06C.P010-R1.0-P1
ログイン後にコピー
コマンドラインで /usr/ を使用してください。 local/php a.php が実行されると、結果は次のようになります:
HTML コード
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
Building target platforms: i686--linux
Building for target i686--linux
Processing files: VTCUAL06.06C.P010-R1.0-P1
Finding Provides: (using /opt/rpm/lib/rpm/find-provides)...
Finding Requires: (using /opt/rpm/lib/rpm/find-requires)...
Wrote: /export/home/webadm/.rpm/RPMS/i686/VTCUA
ログイン後にコピー
つまり、3 つあります。 http アクセス モードで表示されない行:
HTML コード
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
Finding Provides: (using /opt/rpm/lib/rpm/find-provides)...
Finding Requires: (using /opt/rpm/lib/rpm/find-requires)...
Wrote: /export/home/webadm/.rpm/RPMS/i686/VTCUA
ログイン後にコピー
理由を知っている人はいますか?ありがとう! !
-----解決策--------------------------------
この問題はとても奇妙です~~~ ~
誰か知っていますか?
------解決策---------
それはまったく驚くべきことではありません。実行ユーザーはただの違う。コマンドラインはrootによって実行され、WebページはApacheユーザーによって実行されます。
Googleで検索すると、Apacheは--enable-suexecでコンパイルできると書いてありましたが、試していません。
------解決策---------
話し合う
それは驚くべきことではありません、実行ユーザーが異なるだけです。コマンドラインはrootによって実行され、WebページはApacheユーザーによって実行されます。 Googleで検索すると、Apacheは--enable-suexecでコンパイルできると書いてありましたが、試していません。
------解決策---------
話し合う
これは以前から常に可能でした。突然動作しなくなりました。したがって、ユーザーには何の関係もないはずです。
------解決策---------
これは不可能です。
------解決策---------
php コマンドラインプログラムの結果を使用して実行してみてください。
-----解決策---------
ああ、気づきませんでした
これこれは明らかに権限の問題です
Web モードの PHP は、最も低い権限を持つ匿名ユーザーにすぎません
とはいえ、すべてがブラウザ経由で制御できる場合、システムにはセキュリティはありません
Microsoft は便利なデータ クエリを提供するために mssql2000 に URL クエリ機能を追加したと思います
その結果、他人に悪用され悪名高い SQL 攻撃になりました
------解決策----------------------
私はそれが権限の問題だと言いましたが、あなたはそれを追加しましたsudoを使用しましたか? 結果はどうなりましたか?
------解決策------------------
そこにあるはずですが、ない場合はダウンロードしてくださいwget oneでインストールしてください。
------解決策------------------
後で出力がない場合は、何か問題があった可能性があると考えられますので、コードを試して結果を教えてください。
function my_exec($cmd, $input='')
{$proc=proc_open($cmd, array(0=>array('pipe', 'r'), 1=> ;array('pipe', 'w'), 2=>array('pipe', 'w')), $pipes);
fwrite($pipes[0], $input);fclose($パイプ[0]);
$stdout=stream_get_contents($pipes[1]);fclose($pipes[1]);
$stderr=stream_get_contents($pipes[2]);fclose($pipes[ 2]);
$rtn=proc_close($proc);
return array('stdout'=>$stdout,
'stderr'=>$stderr,
'return'= >$rtn
);
}
$str = " /opt/rpm/bin/rpm -bb --target i686--linux /tmp/test.spec";
var_export( my_exec($str));
------解決策----------------------