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
as를 실행하려고 하면 root
user로 변경되고 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의 프로세스 소유권을 사용하여 이 실행 파일을 실행할 수 있습니다.