NOPASSWD가 작동하지 않으면 Sudo는 비밀번호를 묻지 않습니다.

NOPASSWD가 작동하지 않으면 Sudo는 비밀번호를 묻지 않습니다.

sudoers한 번 실행되고 완료되면 자동으로 삭제되는 프로그램이 있습니다 . ssh세션에서 이 함수를 호출하는 스크립트가 있습니다 . 실행하려는 명령을 사용할 수 없을 때 원합니다 sudoers.

SUDO_ASKPASS비밀번호를 입력하라는 메시지가 표시되는 작업 실행을 건너뛸 수 있도록 해당 기능을 재정의하는 방법이 있습니까 ?

내 최선의 시도는 다음과 같습니다.

SUDO_ASKPASS=/bin/false sudo -A /opt/sbin/mycommand

하지만 그게 날 떠났어

sudo: pam_authenticate: Conversation error

sudo기본적으로 내가 실행하는 명령이 sudoers에 있는지 여부에 관계없이 비밀번호를 묻는 메시지를 표시하고 싶지 않습니다 .

-t나의 게으른 수정은 명령줄에서 그것을 제거 ssh하고 실제로 터미널을 사용할 필요가 없기를 바라는 것입니다.

또 다른 해결책은 내 스크립트를 건배 sudoers하고 ASCII 엄지손가락 또는 유용한 것을 인쇄하도록 하는 것입니다.

이 문제를 해결하는 쉬운 방법이 있나요?

답변1

당신은 물어볼 수 있습니다 sudo -l. 실행할 명령의 전체 경로를 반환하거나 0이 아닌 상태로 종료됩니다. 여기서는 출력을 무시하고 상태 반환을 확인합니다.

if sudo -l somecommand... >/dev/null
then
    echo "This is permitted" >&2
else
    echo "You are out of luck today" >&2
fi

관련 정보