"sudo"가 실행될 때마다 스크립트를 실행하는 방법이 있습니까?

"sudo"가 실행될 때마다 스크립트를 실행하는 방법이 있습니까?

저는 아치 리눅스를 사용하고 있습니다. 이는 주로 물건을 설치 하고 보안 모니터링 호출에 대한 알림을 yay받기 위한 것 입니다.sudo

짜증나지만 일반적인 문제는 패키지를 설치하는 동안 어딘가에서 호출 yay해야 하는 경우가 많지만 sudo일반적으로 언제인지 알 수 없으며 비밀번호 프롬프트가 없으면 패키지에 대한 많은 작업을 다시 실행해야 한다는 의미입니다. 내가 잊어버릴 것이기 때문에 5분마다 확인할 것이라고는 기대하지 마십시오. yay필요할 때마다 알림을 받아 sudo비밀번호를 입력하고 계속할 수 있도록 하고 싶습니다 .

또한 명시적으로 직접 실행할 필요 없이 호출될 때마다 무슨 일이 일어나고 있는지 sudo더 잘 볼 수 있도록 호출에 대한 알림을 받고 싶습니다 . 문제가 발생하면 다시 추적할 수 있도록 sudo각 항목을 어딘가에 기록하면 좋을 것입니다.sudo

sudo호출될 때마다 스크립트를 실행하는 방법이 있습니까 ?

답변1

mesr이 제안한 PAM 통합을 고려할 때 내가 볼 수 있는 또 다른 옵션은 고유 식별자를 사용하여 syslog를 통해 로그하도록 sudo를 구성하고 시스템의 rsyslog/syslog-ng가 이러한 메시지에 대한 외부 프로그램/스크립트를 호출하도록 하는 것입니다. 아니면 /var에 있는 기존 로그 파일이 아닌 다른 파일에 로그인할 수도 있습니다.

예시가 없지만 필요하다면 작성해 드릴 수 있습니다.

답변2

질문에 문자 그대로 대답하려면: 예, 다음과 같은 방법이 있습니다.스도의(Sudoers더 정확하게 말하면 플러그인)이 PAM과 통합됩니다. 전화선만 추가하면 됩니다pam_exec.soin /etc/pam.d/sudo, 스크립팅 목적에 적합한 PAM 스택 위치에 있습니다.

그러나 더 넓은 맥락에서 문제를 살펴보면 스크립팅이 필요하지 않을 수도 있습니다. 또 다른 접근 방식은 다음과 같습니다.전용 비로그인 sudoer로 구성스도이 사용자가 비밀번호 없이 명령을 실행할 수 있도록 허용합니다. 그러면 로그 질문에 대한 답변도 제공되므로 확인할 수 있습니다.스도사용자 로그 및 필터.

경고하다! ! !만약 당신의뿌리계정이 비활성화되었습니다.비쥬도편집할 때 적극 권장됩니다.스도구성.

만약에패키지가 설치될 때 전용 사용자를 생성하지 않았습니다. 다음 명령을 사용하여 수동으로 생성할 수 있습니다.

# useradd --system --home /tmp --shell /bin/nologin yay

다음 줄 /etc/sudoers(또는 그 중 하나 /etc/sudoers.d/*) 을 추가하면사용자는 비밀번호 없이 모든 명령을 실행할 수 있습니다.

yay ALL=(ALL) NOPASSWD: ALL

요구사항을 좁힐 수 있다면고정된 명령 집합의 경우 다음 형식은 암호 없이 해당 명령만 허용합니다(목록이 길면 다음을 사용하여 명령 별칭을 정의할 수 있습니다).Cmnd_alias):

yay ALL=(ALL) NOPASSWD: /usr/bin/something, /sbin/another, ...

그러면 시작할 수 있습니다이와 같이. 처음에는 비밀번호를 한 번 입력해야 하지만에 익숙해:

$ sudo -u yay yay

관련 정보