0

Web 経由で php ページにアクセスする場合:

<?php
print '<pre>'."\n";

print 'Current script owner: '."\n";
print get_current_user()."\n";
print "\n";

print '$USER: '."\n";
passthru('print $USER');
print "\n";

出力が得られます:

Current script owner: 
danny

$USER: 

シェル ユーザーが現在のスクリプト所有者と等しくないのはなぜですか? Webサーバー経由でphpスクリプトでシェルを実行するときにユーザーを特定する方法は?

4

1 に答える 1

2

USER環境変数は、プログラムによって入力されますlogin。PHP はバックグラウンド デーモンとして実行されるため、通常、変数は設定されません。次のように設定できますputenv

$user = posix_getpwuid(posix_geteuid());
putenv('USER='.$user['name']);
于 2013-10-29T06:27:29.697 に答える