sudo: PERM_ROOT: setresuid (0, -1, -1): операция не разрешена

Так что проблема в том, что ошибка появляется в apache.err.

Я могу выполнить как пользователь в оболочке.

root@ubuntu:~# su www-data
www-data@ubuntu:/root$ sudo /usr/local/bin/metronomectl restart
Stopped
Started
www-data@ubuntu:/root$

но когда я пытаюсь ту же команду через php

exec('sudo /usr/local/bin/metronomectl restart');

я понял ошибку

sudo: PERM_ROOT: setresuid(0, -1, -1): Operation not permitted

Пользователь www-данных находится в sudoers.

Я в конце моего ума здесь …
Любая помощь приветствуется.

PS. Пожалуйста, спросите, нужна ли вам дополнительная информация.

редактировать:

root@ubuntu:~# uname -a
Linux ubuntu 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
root@ubuntu:~#

линия sudoers:

www-data ALL= NOPASSWD: /usr/local/bin/metronomectl

2

Решение

Вместо прямого отключения mpm-itk, вы можете просто отключить его ограничения на sudo:

<IfModule mpm_itk_module>
# Permit using "sudo"LimitUIDRange 0 65534
LimitGIDRange 0 65534
</IfModule>
3

Другие решения

Исправлено отключением модуля mpm_itk в apache.

0

Поскольку mpm-itk должен быть в состоянии setuid (), он запускается от имени пользователя root (хотя по возможности ограничен возможностями POSIX и seccomp v2)

Похоже, что поддержка seccomp v2 (в Linux 3.5.0 или новее) полностью нарушает работу таких вещей, как sudo или же crontab так как они используют setuid системный вызов внутри.

Обходной путь не использовать mpm_itkили избегайте выполнения таких двоичных файлов.

Refs: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=738131

0
По вопросам рекламы [email protected]