su로 로그인한 경우에만 PAM 스크립트 실행

su로 로그인한 경우에만 PAM 스크립트 실행

다음을 사용할 때 참조 /usr/local/bin하는 스크립트가 있습니다 ./etc/pam.d/su

session  optional  pam_exec.so  stdout  /usr/local/bin/script.sh

from으로 로그인 하면 user예상대로 실행되지만 or로 로그인할 때도 작동합니다. 로그아웃할 때 실행을 중지하려면 어떻게 해야 합니까?rootsu - userexitlogoutuser

답변1

매뉴얼에서pam_exec(8):

설명하다

pam_exec는 외부 명령을 실행하는 데 사용할 수 있는 PAM 모듈입니다.

하위 환경은 pam_getenvlist(3)가 반환한 현재 PAM 환경 목록으로 설정됩니다.다음 PAM 항목은 환경 변수로 내보내집니다.: PAM_RHOST, PAM_RUSER, PAM_SERVICE, PAM_TTY, PAM_USER그리고PAM_TYPE, 모듈 유형 중 하나를 포함합니다: account, auth, password, open_session 그리고close_session.

[...]

PAM_TYPE환경 변수에 해당 값이 없는지 스크립트를 확인하고 close_session, 그렇지 않으면 종료하십시오.

답변2

@AB의 답변을 바탕으로 원하는 것을 얻기 위해 스크립트 시작 부분에 다음 줄을 추가했습니다.

if [[ $PAM_TYPE == "close_session" ]]; then  
   exit 0  
fi

관련 정보