Ответ 1
Вы можете вызвать функцию php exec для выполнения whoami:
<?php echo exec('whoami'); ?>
Я нахожусь в чужой Linux-системе и должен определить пользователя, на котором работает apache (а также php).
Цель: Мне нужно получить владельца script (это не проблема, поскольку я могу использовать SplFileInfo) и сравнить его с владельцем процесса apache.
Я открыт для любых альтернативных предложений.
С уважением, Марио
Изменить: Дополнительная информация:
script - генератор миниатюр, который использует файл XML для создания больших пальцев больших изображений. script необходимо создать папки и записать файлы. Поскольку я не могу влиять на конфигурацию php, и у меня нет доступа к оболочке, это нужно сделать очень тихо. Процесс создания останавливается через исключение и отправляет сообщение об ошибке. Поскольку большинство функций php не могут генерировать исключения при отказе, мне нужны некоторые ручные проверки для определения среды, в которой я находится. Поэтому мне нужно, чтобы пользователь apache сравнивал его с каким-то каталогом или файловым владельцем.
Вы можете вызвать функцию php exec для выполнения whoami:
<?php echo exec('whoami'); ?>
см. posix_getuid() и posix_getpwuid()
Некоторые сложные ответы здесь.
Это работает для меня:
$user = getenv('APACHE_RUN_USER');
Не уверен, что это просто новая вещь, которая была добавлена в apache, так как этот вопрос задавался, но определенно там сейчас.
phpinfo сбрасывает много системной информации. Для установки apache2 существует раздел, в котором отображаются идентификаторы пользователя и группы apache. Попробуйте создать PHP скрипт, который имеет только одну строку, вызов phpinfo() и открытие его в вашем веб-браузере.