Реклама: Работа в Воскресенске: г. Воскресенск. Город Воскресенск. Новости. Как узнать пользователя, под которым выполняется скрипт
Текущий рейтинг темы: 7.0000
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
 Откуда: Москва Всего сообщений: 3031 Рейтинг пользователя: 75 Дата регистрации на форуме: 29 сен. 2001
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 8 сентября 2005 18:16
Вопрос такой: нужно узнать имя пользователя, под которым выполняется PHP-скрипт, причем предпочтительнее именно символьное имя, а не uid. Желательно также, чтобы это работало как в *nix, так и в Windows.
--- Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
| | | |
wsx
Модератор раздела
Юниксойд, сетевик
 Откуда: Казань Всего сообщений: 1084 Рейтинг пользователя: 28 Репутация пользователя: 1Дата регистрации на форуме: 14 янв. 2005
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 8 сентября 2005 19:01
| | | |
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
 Откуда: Москва Всего сообщений: 3031 Рейтинг пользователя: 75 Дата регистрации на форуме: 29 сен. 2001
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 8 сентября 2005 19:23
Еще неплохо подходит функция get_current_user, как выяснилось.
--- Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
| | | |
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
 Откуда: Москва Всего сообщений: 3031 Рейтинг пользователя: 75 Дата регистрации на форуме: 29 сен. 2001
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 18 сентября 2005 1:04
Как выяснилось, применять эти функции малость небезопасно: некоторые уроды-хостеры запрещают их якобы из соображений безопасности. Впрочем, это касается по-моему, ситуаций, когда PHP работает в safe-mode.
--- Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
| | | |
ph4n70m_d
Новичок
 Всего сообщений: 1 Рейтинг пользователя: 0 Дата регистрации на форуме: 22 сен. 2005
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 22 сентября 2005 20:19
А поточнее моно? Я так понял кто зашел и выполняет этот скрипт? так или нет? Елси да моно попробовать через кукисы.
--- Я ни когда не отказываюсь от своих слов \m/,
| | | |
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
 Откуда: Москва Всего сообщений: 3031 Рейтинг пользователя: 75 Дата регистрации на форуме: 29 сен. 2001
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 22 сентября 2005 20:31
Нет, имелось в виду совершенно другое: я хотел узнать логин пользователя в системе, от имени которого запустился интерпретатор PHP. Соответственно, это сильно влияет на то, как ставить права доступа к файлам данных: если скрипт выполняется от имени какого-нибудь apache или nobody, то надо разрешать доступ всем (права 666), а если от пользователя-владельца скрипта (как на моем хостинге) - то только владельцу (600). А логин пользователя, который вошел через Web-форму, можно запоминать действительно либо в cookies, либо в session (причем второе предпочтительнее), там все достаточно просто.
--- Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
| | | |
| AplHost
Новичок
Всего сообщений: 4 Рейтинг пользователя: 0
Дата регистрации на форуме: 18 мар. 2007
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 18 марта 2007 10:00
Если имеется ввиду под каким логин запускается php на сервере, то здесь ответ не однозначный.
Если php запущен как модуль к apache, то скрипт будет выполняться от пользователя nobody. Такой подход используют большинство хостеров.
Однако есть еще suExec, это когда php работает как FastCGI. В этом случае php запускается от владельца скрипта.
Проверить какой способ используется очень просто. Если используется SuEXEC, то директивы php_flag и php_value в .htaccess работать не будут, и при заходе на сайт будет вываливаться 500 ошибка. В этом случае можно создавать файл php.ini в корне сайта и настраивать интерпретатор через него. | | | |
wsx
Модератор раздела
Юниксойд, сетевик
 Откуда: Казань Всего сообщений: 1084 Рейтинг пользователя: 28 Репутация пользователя: 1Дата регистрации на форуме: 14 янв. 2005
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 20 марта 2007 11:20
AplHostпричём здесь это? Вопрос был о другом не много. А теперь смотри сюды! [q] Если php запущен как модуль к apache, то скрипт будет выполняться от пользователя nobody.[/q]
Не хера подобного. это по умолчанию так, но есть хитрые способы и напильники. Не только при suexec можно запретить использование php_flag и php_value. | | | |
| moscower
Новичок
Откуда: Москва Всего сообщений: 2 Рейтинг пользователя: 1
Дата регистрации на форуме: 19 июня 2007
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 19 июня 2007 11:49
Можно сделать так:
$user_info=posix_getpwuid(posix_getuid()); echo $user_info['name'];
| | | |
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
 Откуда: Москва Всего сообщений: 3031 Рейтинг пользователя: 75 Дата регистрации на форуме: 29 сен. 2001
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 19 июня 2007 15:01
Есть и более простая функция: get_current_user(), но проблема в том, что очень многие хостеры ее вносят в список запрещенных для вызова функций, что вызывает ошибку скрипта.
--- Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
| | | |
| moscower
Новичок
Откуда: Москва Всего сообщений: 2 Рейтинг пользователя: 1
Дата регистрации на форуме: 19 июня 2007
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 19 июня 2007 19:37 Сообщение отредактировано: 19 июня 2007 19:40
XXXX Pro написал: [q] Есть и более простая функция: get_current_user(), но проблема в том, что очень многие хостеры ее вносят в список запрещенных для вызова функций, что вызывает ошибку скрипта.[/q]
get_current_user — Gets the name of the owner of the current PHP script То есть эта ф-ия показывает имя не пользователя, от имени которого выполняется скрипт, а пользователя - владельца файла скрипта. Мой же пример покажет именно пользователя, от имени которого скрипт выполняется - то есть то - что автор и хотел узнать. | | | |
Gram
Понечетный Участник Проекта
 Откуда: здешний Всего сообщений: 569 Рейтинг пользователя: 14 Репутация пользователя: 1Дата регистрации на форуме: 23 июля 2003
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 20 июня 2007 11:12
moscower, Вы правы. Сейчас проверил у себя — функция действительно показывает то, что нужно. Спасибо.
XXXX Pro, добавил себе на форум — помимо пользователя владельца скрипта вывожу еще от какого имени скрипт выполняется. | | | |
Время выполнения скрипта: 0.2497. Количество выполненных запросов: 18, время выполнения запросов 0.1388
|