로그아웃하거나 연결을 끊을 때 명령을 강제로 실행하시겠습니까?

로그아웃하거나 연결을 끊을 때 명령을 강제로 실행하시겠습니까?

SSH를 통해 시스템에 로그인하고 있는데 의도적으로(셸 종료) 또는 SSH 연결이 다운/종료되었기 때문에 로그아웃 시 명령을 강제로 실행하고 싶습니다. 이것을 설정할 수 있는 방법이 있나요? 지금으로서는 SSH가 닫힐 때 전송되는 신호(SIGHUP?)를 가로채서 명령을 실행하는 프로그램으로 로그인 셸을 변경하는 것이 가장 좋은 것 같은데, 더 깔끔한 솔루션이 있는지 궁금합니다.

답변1

가장 좋은 방법은 다음과 같습니다..

여러 개의 파일이 있으며 /etc/pam.d그 중 하나는 sshdssh에만 영향을 미치고 다른 로그인(예: GUI 또는 실제 TTY)에는 영향을 주지 않으려면 이 파일이 필요합니다.
모든 로그인에 영향을 미치려면 "공통" 파일이 필요합니다. 이 다른 "일반" 파일의 이름은 배포판마다 다르지만 include기본 파일을 찾을 때까지 파일의 및 문을 따라 추적할 수 있습니다.substacksshd

사용하려는 파일을 식별한 후 섹션 /etc/pam.d에 다음과 같은 줄을 추가합니다 session.

session     optional    pam_exec.so quiet /etc/pam_session.sh

이렇게 하면 /etc/pam_session.sh누군가가 로그인하고 로그아웃할 때마다(정상적으로든 아니든) 호출됩니다.

이제 /etc/pam_session.sh누군가 로그아웃할 때마다 무언가를 실행하는 데 사용할 수 있는 예는 다음과 같습니다.

#!/bin/sh
if [ "$PAM_TYPE" = "close_session" ]; then
  something
fi

chmod a+x( 대본을 잊지 마세요 )

관련 정보