Объединенный Открытый Проект - Сайт для Настоящих Компьютерщиков

Объединенный Открытый Проект

Сайт для Настоящих Компьютерщиков

; Логин:
  Пароль:
Обычный
Безопасный
Запомнить пользователя



Зарегистрироваться
Забыли пароль?
 
 
 
Объединенный Открытый Проект »   Программирование »   PHP »   Как узнать пользователя, под которым выполняется скрипт
RSS
Реклама

Как узнать пользователя, под которым выполняется скрипт

Текущий рейтинг темы: 7.0000

<<Назад  Вперед>>Модератор: wsxПечать
 
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 3034
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Вопрос такой: нужно узнать имя пользователя, под которым выполняется PHP-скрипт, причем предпочтительнее именно символьное имя, а не uid. Желательно также, чтобы это работало как в *nix, так и в Windows.

---
Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
wsx
Модератор раздела
Юниксойд, сетевик
wsx
Откуда: Казань
Всего сообщений: 1083
Рейтинг пользователя: 28

Репутация пользователя: 1




Дата регистрации на форуме:
14 янв. 2005
http://ru.php.net/manual/en/function.posix-getlogin.php



posix_getlogin — Return login name
Description
string posix_getlogin ( void )

Returns the login name of the user owning the current process. See posix_getpwnam() for information how to get more information about this user.
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 3034
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Еще неплохо подходит функция get_current_user, как выяснилось.

---
Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 3034
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Как выяснилось, применять эти функции малость небезопасно: некоторые уроды-хостеры запрещают их якобы из соображений безопасности. Впрочем, это касается по-моему, ситуаций, когда PHP работает в safe-mode.

---
Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
ph4n70m_d
Новичок

ph4n70m_d
Всего сообщений: 1
Рейтинг пользователя: 0





Дата регистрации на форуме:
22 сен. 2005
А поточнее моно?
Я так понял кто зашел и выполняет этот скрипт? так или нет?
Елси да моно попробовать через кукисы.

---
Я ни когда не отказываюсь от своих слов \m/,
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 3034
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Нет, имелось в виду совершенно другое: я хотел узнать логин пользователя в системе, от имени которого запустился интерпретатор PHP. Соответственно, это сильно влияет на то, как ставить права доступа к файлам данных: если скрипт выполняется от имени какого-нибудь apache или nobody, то надо разрешать доступ всем (права 666), а если от пользователя-владельца скрипта (как на моем хостинге) - то только владельцу (600).
А логин пользователя, который вошел через Web-форму, можно запоминать действительно либо в cookies, либо в session (причем второе предпочтительнее), там все достаточно просто.

---
Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
AplHost
Новичок


Всего сообщений: 4
Рейтинг пользователя: 0





Дата регистрации на форуме:
18 мар. 2007
Если имеется ввиду под каким логин запускается php на сервере, то здесь ответ не однозначный.

Если php запущен как модуль к apache, то скрипт будет выполняться от пользователя nobody.
Такой подход используют большинство хостеров.

Однако есть еще suExec, это когда php работает как FastCGI.
В этом случае php запускается от владельца скрипта.

Проверить какой способ используется очень просто.
Если используется SuEXEC, то директивы php_flag и php_value в .htaccess работать не будут, и при заходе на сайт будет вываливаться 500 ошибка.
В этом случае можно создавать файл php.ini в корне сайта и настраивать интерпретатор через него.
wsx
Модератор раздела
Юниксойд, сетевик
wsx
Откуда: Казань
Всего сообщений: 1083
Рейтинг пользователя: 28

Репутация пользователя: 1




Дата регистрации на форуме:
14 янв. 2005
AplHost
причём здесь это? Вопрос был о другом не много.

А теперь смотри сюды!
[q]
Если php запущен как модуль к apache, то скрипт будет выполняться от пользователя nobody.
[/q]

Не хера подобного. это по умолчанию так, но есть хитрые способы и напильники.

Не только при suexec можно запретить использование php_flag и php_value.

moscower
Новичок


Откуда: Москва
Всего сообщений: 2
Рейтинг пользователя: 1





Дата регистрации на форуме:
19 июня 2007
Можно сделать так:


$user_info=posix_getpwuid(posix_getuid());
echo $user_info['name'];
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 3034
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Есть и более простая функция: get_current_user(), но проблема в том, что очень многие хостеры ее вносят в список запрещенных для вызова функций, что вызывает ошибку скрипта.

---
Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
moscower
Новичок


Откуда: Москва
Всего сообщений: 2
Рейтинг пользователя: 1





Дата регистрации на форуме:
19 июня 2007

XXXX Pro написал:
[q]
Есть и более простая функция: get_current_user(), но проблема в том, что очень многие хостеры ее вносят в список запрещенных для вызова функций, что вызывает ошибку скрипта.
[/q]


get_current_user — Gets the name of the owner of the current PHP script

То есть эта ф-ия показывает имя не пользователя, от имени которого выполняется скрипт, а пользователя - владельца файла скрипта.

Мой же пример покажет именно пользователя, от имени которого скрипт выполняется - то есть то - что автор и хотел узнать.
Gram
Понечетный Участник Проекта

Gram
Откуда: здешний
Всего сообщений: 567
Рейтинг пользователя: 14

Репутация пользователя: 1




Дата регистрации на форуме:
23 июля 2003
moscower, Вы правы. Сейчас проверил у себя — функция действительно показывает то, что нужно. Спасибо.

XXXX Pro, добавил себе на форум — помимо пользователя владельца скрипта вывожу еще от какого имени скрипт выполняется.
<<Назад  Вперед>>Модератор: wsxПечать
Объединенный Открытый Проект »   Программирование »   PHP »   Как узнать пользователя, под которым выполняется скрипт
RSS
Быстрый переход в раздел:


Время выполнения скрипта: 0.1534. Количество выполненных запросов: 18, время выполнения запросов 0.0918
Rambler's Top100