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의 프로세스 소유권으로 이 실행 파일을 실행할 수 있습니다.