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

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

МОГА да изпълнявам като потребител в shell.

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

person Mizukamakiri    schedule 23.09.2014    source източник


Отговори (3)


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

<IfModule mpm_itk_module>
    # Permit using "sudo"                             
    LimitUIDRange 0 65534
    LimitGIDRange 0 65534
</IfModule>
person Teddy    schedule 24.10.2015

Коригирано чрез деактивиране на модула mpm_itk в apache.

person Mizukamakiri    schedule 23.09.2014

Тъй като mpm-itk трябва да може да сетуид(), той работи като root (въпреки че е ограничен с POSIX възможности и seccomp v2, където е възможно)

Изглежда, че поддръжката на seccomp v2 (когато е на Linux 3.5.0 или по-нова) прекъсва напълно изпълнението на неща като sudo или crontab, тъй като те използват системното извикване setuid вътрешно.

Заобиколно решение е да не използвате mpm_itk или да избягвате изпълнението на такива двоични файлове.

Препратки: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=738131

person Giovanni Toraldo    schedule 27.07.2015