Мне нужно запустить скрипт cPanel из командной строки через PHP exec
функция (другие опции cPanel нежизнеспособны). Команда примерно:
uapi --user=[user] Email suspend_incoming email=[user]%40[domain].[tld]
Я получил следующую ошибку:
Ошибка setuids: Попытка setuid как обычного пользователя с RUID ***
Это, в свою очередь, привело меня к пониманию того, что пользователь, под которым работает PHP, делает не иметь разрешение на выполнение этой команды, которая приводит меня к эта тема. тем не мение я не хочу слепо включать все команды для этого пользователя при использовании файлов CHMOD, как 777 sudo
из командной строки или PHP exec
скрипт.
Как я только разрешить uapi
команда (также несколько конкретных команд), которая будет выполняться этим пользователем при использовании sudo
через редактирование к sudoers
файл?
Вы можете дать пользователю доступ для выполнения команды от имени пользователя root через запись в sudoers
файл вроде так (при условии www-data
является владельцем владельца процесса PHP):
www-data ALL=(root) NOPASSWD: /path/to/uapi
Получить путь к uapi
файл через команду which uapi
, Вы должны внимательно рассмотреть последствия этого действия для безопасности.
Этот вопрос об обмене стеками в UNIX имеет хорошее подробное объяснение синтаксиса записи sudo.
Других решений пока нет …