Выполнять команды от имени другого пользователя

Выполнять команды от имени другого пользователя

Я создал пользователя с именем 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.

Связанный контент