Можно ли использовать серверные сценарии PHP для определенных учетных записей пользователей Linux - PullRequest
2 голосов
/ 04 ноября 2011

Я предпочитаю не публиковать это на SeverFault, потому что этот сайт предназначен только для самых опытных администраторов серверов.Я начал обсуждение этого вопроса в MetaStackOverflow

Некоторое время назад я задал вопрос о том, с каким пользователем вы входите, когда выполняете сценарии PHP на стороне серверамой случай, из javascript / HTML) и это www-data.

Я хотел знать, можно ли подключиться как другой пользователь, т.е.Джон. Смит вместо этого.Я хочу создать веб-сайт, на котором разрешения для картинок / изображений / текста ... берутся из linux вместо базы данных SQL (или, если они есть в базе данных, то они отражают действительные разрешения для файла linux.

Если это невозможно или эквивалентно ереси сервера, есть ли обходные пути, например, добавление каждого пользователя в группу www-данных по умолчанию.

Ответы [ 2 ]

1 голос
/ 08 ноября 2011

Поскольку никто не предложил это в форме ответа, я пойду дальше и сделаю это. Решение suPHP .

suPHP - это инструмент для выполнения сценариев PHP с разрешениями их владельцы. Он состоит из модуля Apache (mod_suphp) и setuid корневой двоичный файл (suphp), вызываемый модулем Apache для изменения UID процесса, выполняющего интерпретатор PHP.

1 голос
/ 04 ноября 2011

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

Существовало также расширение Apache, которое можно было использовать для запуска сценариев PHP под конкретным пользователем, но я думаю, что его разработка остановилась некоторое время назад.

Также возможно, чтобы PHP запускался как сценарий командной строки, и в этом случае вы можете указать пользователя, который запускает сценарий обычным образом, как в linux.

Полагаю, у вас может быть «заглушенный» PHP-скрипт, который запускается под www-данными и выполняется, когда пользователь заходит на него через свой браузер.Этот скрипт будет определять личность вошедшего в систему пользователя, затем он может запустить другой PHP-скрипт с exec (), чтобы выполнить настоящую работу.Вы должны быть в состоянии выполнить сценарий от имени пользователя, которого вы хотите.

Обратите внимание, что это всего лишь предположение с моей стороны, я никогда не пытался запускать сценарии PHP как отдельный пользователь из Apache, только изкомандная строка.

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