Как определить, с каким пользователем работает PHP-скрипт при запуске скрипта на сервере? Он работает под тем же именем, что и apache или phpmyadmin? Мой вопрос может быть неправильно оформлена, но я хочу знать, какой пользователь, так что я установить соответствующее разрешение для различных папок в/варКак узнать, какой пользователь запускает текущий скрипт php?
ответ
Execute whoami
:
<?php echo exec('whoami'); ?>
Хмм второй человек вниз после того, как он был отредактирован. В его нынешнем виде это работает, см. Http://stackoverflow.com/questions/7771586/how-to-check-what-user-php-is-running-as – jpiasetz
Хехе, отредактировал его только для того, чтобы удалить мой нисходящий (он заблокирован через определенное время ..) – Wrikken
Спасибо :). Я на самом деле не жаловался на тебя. Вы были правы. – jpiasetz
Используйте это:
$_SERVER['REMOTE_USER'];
эта переменная могут быть установлены или не установлены.
Это не чего хочет OP. Он хочет знать пользователя * system * –
если у вас есть posix functions доступны (по умолчанию включена), то вы можете использовать posix_geteuid
и posix_getpwuid
, чтобы получить имя пользователя (по крайней мере, в не-Windows-среде) следующим образом:
$pwu_data = posix_getpwuid(posix_geteuid());
$username = $pwu_data['name'];
Другой (более дорогой) способ сделать это было бы использовать оболочку исполнительной функцию, как Exec для запуска Whoami:
$username = exec('whoami');
или даже кавычки (хотя, возможно, придется урезать разрыв строки в выключенном состоянии):
$username = `whoami`;
Мне лично только нужно было получить имя пользователя, выполняющего скрипт для скриптов PHP, которые запускаются в оболочке (в командной строке). Как правило, скрипты, которые запускаются в процессе создания ответа на запрос, который обрабатывает веб-сервер, будут выполняться как пользователь веб-сервера, такие как www-data, apache и т. Д. В Apache пользователь, который запускает apache/Процессы httpd задаются с помощью директивы User.
Используйте это:
echo get_current_user();
забудьте прочитать комментарии, потому что это выглядит как этот ответ на самом деле не делать то, что вы хотите.
Это на самом деле «владелец текущего PHP-скрипта» по http://php.net/manual/en/function.get-current-user.php –
Не используйте «whoami». Когда вы выполняете процесс, пользователь не обязательно будет таким же, как и эффективный пользователь во время запуска скрипта. Но в любом случае «id» предоставит гораздо более полезную информацию. Вместо этого вызовите get_current_user(). Так просто!
Googling 'php define user 'предоставит вам необходимую информацию –
+1 yfgi .... (http://www.php.net/manual/en/function.get-current-user.php#57624) – Wrikken
Вам нужно будет предоставить дополнительную информацию, чтобы помочь вам здесь, я боюсь. – crmpicco