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


13

SSH를 통해 시스템에 로그인하고 있는데 의도적 인 로그 아웃 (쉘 종료)이든 SSH 연결이 끊어 졌거나 종료 되었든 로그 아웃시 명령을 강제로 실행하고 싶습니다. 이것을 설정하는 방법이 있습니까? 가장 좋은 추측은 로그인 쉘을 SSH 종료시 전송 된 신호를 가로 채 (SIGHUP?)하는 프로그램으로 변경하고 명령을 실행하는 것입니다. 그러나 더 깨끗한 솔루션이 있는지 궁금합니다.


원격 컴퓨터 나 연결을 초기화 한 컴퓨터에서 명령을 실행 하시겠습니까?
xx4h 2016 년

답변:


20

이를 수행하는 가장 좋은 방법은 pam 을 사용하는 것 입니다.

에서 /etc/pam.d여러 개의 파일이있을 것이다, 그들 중 하나가 호출된다 sshd. 다른 로그인 (예 : GUI 또는 실제 TTY)이 아닌 ssh에만 영향을 주려면이 파일이 필요합니다.
모든 로그인에 영향을 주려면 '공통'파일이 필요합니다. 이 '공통'파일의 이름은 배포판에 따라 다르지만 기본 파일에 도달 할 때까지 파일 의 includeand 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스크립트를 잊지 마세요 )

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.