서비스 상태를 확인할 수 있는 계정 권한 부여

서비스 상태를 확인할 수 있는 계정 권한 부여

새 계정 svchk를 만들고 visudo를 통해 /sbin/service postfix status 명령을 실행할 수 있는 권한을 부여했습니다.

Cmnd_Alias POSTFIXCMDS = /sbin/service postfix status
svchk ALL = NOPASSWD: POSTFIXCMDS

그러나 svchk를 실행하고 /bin/service postfix status를 실행하면 다음 오류가 발생합니다.

su svchk
/sbin/service postfix status
master status unknown due to insufficient privileges.

이 메시지가 나타나는 이유는 무엇이며 postfix 서비스 상태를 확인하기 위해 svchk 권한을 적절하게 부여하려면 어떻게 해야 합니까?

답변1

명령을 실행하려면 다음과 같은 sudo접두어를 붙여야 합니다 .sudo

sudo /sbin/service postfix status

답변2

권한이 없는 사용자가 접미사 상태를 확인할 수 있도록 visudo에 배치할 올바른 명령 조합을 파악할 수 없습니다.

/etc/init.d/postfix 스크립트를 확인해보면 status 명령이 여러 다른 명령을 호출할 수 있는 것 같습니다. 이 외에도 chroot를 사용하여 서비스가 시작된 것으로 보이며, 이로 인해 내 계정에 서비스 상태를 확인할 수 있는 권한을 부여하는 데 문제가 발생할 수 있습니다.

대신, 나는 다른 방식으로 서비스를 확인하기로 결정했습니다. visudo에는 다음과 같이 설정되어 있습니다.

 # Allow the unprivileged account svchk run wc, ps, grp so that we can check if postfix is running
 Cmnd_Alias POSTFIXCMDS = /usr/bin/wc,/bin/ps,/bin/grep
 svchk ALL = NOPASSWD: POSTFIXCMDS

그런 다음 상태 확인 스크립트에서 다음 명령을 실행합니다. ps aux | grep /usr/libexec/postfix/master | grep /usr/libexec/postfix/master |

위 명령의 결과가 2("/usr/libexec/postfix/master"라는 단어가 있는 두 개의 프로세스)를 반환하면 postfix가 실행되고 있는 것입니다. 1을 반환하면 postfix 명령이 실행되고 있지 않은 것입니다.

저는 이 솔루션이 별로 마음에 들지 않습니다. 따라서 다른 사람이 실제 서비스 접미사 상태 명령을 권한이 없는 사용자로 작동하도록 하는 더 좋은 방법이 있다면 듣고 싶습니다. 답변을 답변으로 표시하세요.

고마워요 브래드

관련 정보