Я пишу простое веб-приложение на PHP, которое должно иметь доступ на запись к каталогу на сервере, если каталог не доступен для записи. Я хочу отобразить сообщение об ошибке, объясняющее, чтобы установить владельца каталога тому, кто веб-сервер (например, www-data, nobody), но, поскольку большинство людей этого не знают, было бы неплохо сообщить им, кому нужно катанировать каталог. Можно ли найти это из PHP?
Проверьте shell_exec ()
<?php echo exec('whoami'); ?>
Я использую быстрый и грязный трюк, чтобы записать файл в /tmp/
. Он должен быть создан с пользователем и группой, используемой процессом PHP.
На платформах Unix это решение может работать даже в безопасном режиме при условии, что расширение posix будет установлено или скомпилировано.
$user = posix_getpwuid(posix_geteuid()); echo $user['name'];
Документы здесь .
Если на linux / unix:
<?php $temp = tmpfile(); print_r(posix_getpwuid(fileowner($temp))); ?>
Если вы можете запустить некоторый bash, вы можете использовать whoami
или вы могли бы совать в /proc
Это сообщение об ошибке разваливается в среде сервера Windows. «Пожалуйста, убедитесь, что веб-сервер имеет доступ на запись к каталогу», вероятно, является лучшим сообщением об ошибке.