다른 사용자로 명령 실행

다른 사용자로 명령 실행

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

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

관련 정보