다음을 사용할 때 참조 /usr/local/bin
하는 스크립트가 있습니다 ./etc/pam.d/su
session optional pam_exec.so stdout /usr/local/bin/script.sh
from으로 로그인 하면 user
예상대로 실행되지만 or로 로그인할 때도 작동합니다. 로그아웃할 때 실행을 중지하려면 어떻게 해야 합니까?root
su - user
exit
logout
user
답변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