로그인 후 pam_exec 스크립트를 실행하세요.

로그인 후 pam_exec 스크립트를 실행하세요.

lastlog사용자가 로그인하면 SSH 로그인을 모니터링하는 다른 애플리케이션에서 사용할 수 있도록 명령을 사용자 정의 파일로 구문 분석합니다.

나는 /etc/pam.d/sshd그 줄과 맨 아래 부분을 포함시켰습니다:

session optional pam_exec.so seteuid /usr/local/bin/run_on_login.sh

이 작품에는 한 가지 큰 단점이 있습니다. 스크립트가 이전에 실행되었거나 /var/log/lastlog업데이트 /var/log/wtmp되었습니다. 스크립트를 실행하기 전까지는 성공적인 로그인이 완료된 것으로 간주되지 않기 때문인 것 같습니다.

실을 넣어보려고 했는데 /etc/pam.d/login별 차이가 없는 것 같았습니다.

전체 로그인 프로세스가 완료된 후(로그 쓰기 포함) pam_exec 스크립트를 실행할 수 있는 방법이 있습니까?

답변1

/usr/local/bin/run_on_login.sh처음에 백그라운드 프로세스로 실행되고 몇 초간 기다린 다음 "마지막" 명령을 구문 분석하는 다른 스크립트를 포크하여 이 문제를 해결할 수 있었습니다 .

예를 들어 pam_exec는 다음 스크립트를 실행합니다.

#!/bin/bash
# /usr/local/bin/run_on_login.sh

nohup /usr/local/bin/parse_last.sh >/dev/null 2>&1 &

이 스크립트를 트리거하는 것은 다음과 같습니다.

#!/bin/bash
# /usr/local/bin/parse_last.sh

sleep 5

# (truncated for brevity)
last -iF | head -n 50 | awk '{print "something"}'

관련 정보