Я пытаюсь вызвать исполняемый файл из скрипта PHP, который должен запускаться от имени другого пользователя (НЕ root), как обычно работает веб-сервер. Я подумал, что должно быть достаточно просто установить бит setuid для рассматриваемого исполняемого файла, поскольку он уже принадлежит пользователю, от которого он должен работать. Однако, когда я делаю это, я получаю эту ошибку:
The application with bundle ID (null) is running setugid(), which is not allowed
Очевидно, что в какой-то момент Mac OS X отказалась от возможности запуска программ setuid, если вы не работаете от имени пользователя root. Я определенно не хочу, чтобы веб-сервер работал от имени пользователя root или другого пользователя!
Похоже, что у Apple есть специальные обручи, через которые вы должны пройти, чтобы разрешить такую вещь - проблема в том, что, если я правильно понимаю, этот метод предлагает пользователю ввести пароль или что-то в этом роде. Это, очевидно, неприемлемо для скрипта, запускаемого с веб-сервера! Другая потенциальная проблема заключается в том, что я не могу изменить исполняемый файл, чтобы ввести какой-то вызов аутентификации.