Я создал пользователя с именем intelmq
, у которого есть разрешения на запуск программы с именем intelmqctl
. Затем я создал пользователя с именем apache
, и я хотел бы apache
выполнить ее intelmqctl
как пользователь intelmq
. Я добавил в файл следующие строки sudoers
:
Defaults:apache !requiretty
apache ALL=(intelmq) NOPASSWD: /usr/bin/intelmqctl
Однако каждый раз, когда я пытаюсь выполнить следующую команду от имени пользователя, apache
возвращается следующее:
команда:sudo -u apache sudo -u intelmq /usr/bin/intelmqctl --type json stop abusech-ip-parser
выход:
Sorry, user apache is not allowed to execute '/bin/sudo -u intelmq /usr/bin/intelmqctl --type json stop abusech-ip-parser' as apache on localhost.localdomain.
Я использую CentOS 7.
Вот шаги, которые я выполнил для установки, intelmqctl
и более подробное объяснение самой проблемы, возможно, я что-то не так сделал во время установки:https://github.com/certtools/intelmq/issues/981
Если я попытаюсь выполнить sudo -iu apache
от имени пользователя root
, он изменится на apache
пользователя, а затем, если я выполню команду sudo -u intelmq /usr/bin/intelmqctl
, она сработает, покажет все параметры для выполнения intelmqctl
.
Однако если я запущу команду sudo -iu apache
от имени apache
пользователя, она вернет:Sorry, user apache is not allowed to execute '/bin/bash' as apache on localhost.localdomain.
решение1
Вы можете добавить разрешение setuid к этому двоичному файлу и изменить владельца на intelmq.
chmod u+s /usr/bin/intelmqctl
chown intelmq /usr/bin/intelmqctl
Затем вы можете запустить этот исполняемый файл с правами владельца процесса intelmq.