다른 사용자로 명령 실행 [닫기]

다른 사용자로 명령 실행 [닫기]

intelmq라는 프로그램을 실행할 수 있는 권한을 가진 사용자를 만들었습니다 intelmqctl. 그런 다음 실행 apache하려는 사용자를 만들었습니다 apache. 파일에 다음 줄을 추가했습니다.intelmqctlintelmqsudoers

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 apacheas를 실행하려고 하면 rootuser로 변경되고 apache명령을 실행하면 sudo -u intelmq /usr/bin/intelmqctl작동하며 실행할 모든 옵션이 표시됩니다 intelmqctl.

그러나 사용자로 명령을 실행하면 다음이 반환됩니다 sudo -iu apache.apacheSorry, 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의 프로세스 소유권을 사용하여 이 실행 파일을 실행할 수 있습니다.

관련 정보