Как узнать, какой пользователь запускает текущий PHP-скрипт?

Как определить, с каким пользователем работает скрипт php, когда я запускаю скрипт на сервере? Он работает под тем же именем, что и apache или phpmyadmin? Мой вопрос может быть ошибочно обрамлен, но я хочу знать, какой пользователь так, чтобы я установил соответствующее разрешение для разных папок в / var

Выполнить whoami :

 <?php echo exec('whoami'); ?> 

Если у вас есть доступные функции posix (включены по умолчанию), вы можете использовать posix_geteuid и posix_getpwuid для получения имени пользователя (по крайней мере, в не-Windows-средах) следующим образом:

 $pwu_data = posix_getpwuid(posix_geteuid()); $username = $pwu_data['name']; 

Другой (более дорогой) способ сделать это – использовать функцию выполнения оболочки, такую ​​как exec для запуска whoami:

 $username = exec('whoami'); 

или даже backticks (хотя вам может понадобиться обрезать линию):

 $username = `whoami`; 

Мне лично только когда-либо нужно было получить имя пользователя, использующего скрипт для скриптов PHP, которые запускаются в оболочке (в командной строке). Как правило, скрипты, которые запускаются в процессе создания ответа на запрос, который обрабатывает веб-сервер, будут выполняться как пользователь веб-сервера, такие как www-data, apache и т. Д. В Apache пользователь, который запускает apache / Процессы httpd задаются с помощью директивы User .

Не используйте «whoami». Когда вы выполняете процесс, пользователь не обязательно будет таким же, как и эффективный пользователь во время запуска скрипта. Но в любом случае «id» предоставит гораздо более полезную информацию. Вместо этого вызовите get_current_user (). Так просто!

Использовать это:

 echo get_current_user(); 

Не забудьте прочитать комментарии, потому что похоже, что этот ответ фактически не делает то, что вы хотите.

Использовать это:

 $_SERVER['REMOTE_USER']; 

эта переменная может быть установлена ​​или не установлена.