Как запустить скрипт php (через веб-сервер) от имени другого пользователя в Mac OS X

837
Michael

Я пытаюсь вызвать исполняемый файл из скрипта PHP, который должен запускаться от имени другого пользователя (НЕ root), как обычно работает веб-сервер. Я подумал, что должно быть достаточно просто установить бит setuid для рассматриваемого исполняемого файла, поскольку он уже принадлежит пользователю, от которого он должен работать. Однако, когда я делаю это, я получаю эту ошибку:

The application with bundle ID (null) is running setugid(), which is not allowed 

Очевидно, что в какой-то момент Mac OS X отказалась от возможности запуска программ setuid, если вы не работаете от имени пользователя root. Я определенно не хочу, чтобы веб-сервер работал от имени пользователя root или другого пользователя!

Похоже, что у Apple есть специальные обручи, через которые вы должны пройти, чтобы разрешить такую ​​вещь - проблема в том, что, если я правильно понимаю, этот метод предлагает пользователю ввести пароль или что-то в этом роде. Это, очевидно, неприемлемо для скрипта, запускаемого с веб-сервера! Другая потенциальная проблема заключается в том, что я не могу изменить исполняемый файл, чтобы ввести какой-то вызов аутентификации.

2
Почему это _need_ для запуска в качестве другого пользователя? terdon 11 лет назад 0
Исполняемый файл должен подключаться к серверу Windows для доступа к устройству (iSight); в противном случае он не находит никаких устройств. Очевидно, что последние версии OS X не позволяют вам даже получить доступ к устройству, если кто-то не вошел в систему. Этот пользователь является пользователем, от имени которого необходимо запустить скрипт. Michael 11 лет назад 0
В частности, я получаю сообщение об ошибке, если исполняемый файл никем не запускается: «_RegisterApplication (), не удалось установить соединение по умолчанию с WindowServer, _CGSDefaultConnection () равно NULL». после чего не удается найти устройство. Michael 11 лет назад 0

0 ответов на вопрос