Могу ли я узнать, для какого пользователя запущен веб-сервер, как в PHP? - PullRequest
6 голосов
/ 06 мая 2009

Я пишу простое веб-приложение на PHP, которое должно иметь права на запись в каталог на сервере, если каталог не доступен для записи, я хочу отобразить сообщение об ошибке, объясняющее, как установить владельца каталога для того, кто бы ни веб-сервер запускается как (например, www-data, nobody), но, поскольку большинство людей не знают этого, было бы неплохо иметь возможность сообщить им, кому следует создать каталог. Можно ли найти это из PHP?

Ответы [ 8 ]

18 голосов
/ 06 мая 2009
<?php
  echo exec('whoami');
?>
3 голосов
/ 06 мая 2009

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

$user = posix_getpwuid(posix_geteuid());
echo $user['name'];

Документы здесь .

3 голосов
/ 06 мая 2009

Быстрый прием, который я использую, - это запись файла в /tmp/. Он должен быть создан с использованием пользователя и группы, используемых процессом PHP.

2 голосов
/ 06 мая 2009

Если в Linux / Unix:

<?php
$temp = tmpfile();
print_r(posix_getpwuid(fileowner($temp)));
?>
2 голосов
/ 06 мая 2009

Оформить shell_exec ()

0 голосов
/ 26 августа 2018

На некоторых серверах используется echo exec('whoami'); или exec('whoami',$out); echo $out; ничего не возвращает, но в любой ситуации вы можете получить текущего пользователя с помощью get_current_user

<?php
echo get_current_user();
?>
0 голосов
/ 06 мая 2009

Это сообщение об ошибке разваливается в среде сервера Windows. «Пожалуйста, убедитесь, что веб-сервер имеет доступ для записи в каталог», вероятно, лучше сообщение об ошибке.

0 голосов
/ 06 мая 2009

Если вы можете запустить какой-нибудь bash, вы можете использовать whoami или вы можете покопаться в /proc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...