
SSH를 통해 시스템에 로그인하고 있는데 의도적인 로그아웃(셸 종료)이든 SSH 연결이 끊어졌거나 종료되었기 때문에 로그아웃 시 명령이 강제로 실행되도록 하고 싶습니다. 이것을 설정할 수 있는 방법이 있나요? 지금으로서는 로그인 셸을 SSH 종료 시 전송된 신호(SIGHUP?)를 가로채서 명령을 실행하는 프로그램으로 변경하는 것이 최선의 추측이지만 더 깔끔한 솔루션이 있는지 궁금합니다.
답변1
이를 수행하는 가장 좋은 방법은 다음을 사용하는 것입니다.팸.
에는 /etc/pam.d
여러 개의 파일이 있으며 그 중 하나는 sshd
. 다른 로그인(예: GUI 또는 실제 TTY)이 아닌 ssh에만 영향을 미치려면 이 파일이 필요합니다.
모든 로그인에 영향을 미치려면 '공통' 파일이 필요합니다. 이 다른 '공통' 파일의 이름은 배포판에 따라 다르지만 기본 파일에 도달할 때까지 파일 의 include
및 문을 따라 추적할 수 있습니다 .substack
sshd
/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
( 스크립트를 잊지 마세요 )