pam_exec.so 를 보십시오 . PAM 시스템 인증의 세션 인터페이스에서 로그인시 스크립트를 실행할 수 있습니다. 스크립트는 사용자가 쉘을 받기 전에 루트로 실행되므로 read
?로 입력을 캡처하지 못할 수 있습니다 . 그래도 시도 read
하고 사용자로부터 이유를 얻고이를 사용하여 syslog에 기록 할 수 logger
있습니다. (아래는 생략했지만 CTRL + C를 트랩하여 이유없이 다른 사람이 나가지 못하게 할 수 있습니다.) $ PAM_USER는 로그인 한 사람으로 설정되므로 로거 명령문에이를 포함시킬 수 있습니다.
예:
/etc/pam.d/system-auth의 세션 맨 위 :
session required pam_exec.so /usr/local/sbin/getreason
그리고 / usr / local / sbin / getreason :
#!/bin/bash
read -p "Reason for logging into production: " reason
logger -t $(basename $0) "$PAM_USER logged in with reason: ${reason}"
이것이 완벽하게 작동하지 않으면 사과합니다. 나는 그것을 테스트하지 않았지만 최근에 비슷한 것을 해왔다. (입력을 캡처하지 않았습니다.)
편집 : 이것에 대해 더 많이 생각할수록 그것이 실행되는 단계 때문에 더 잘 작동하지 않을 것이라고 생각합니다. 같은 getreason
당신이 교체 한 후 스크립트가 작동해야 $PAM_USER
와 함께 $(logname)
,하지만 실행해야 할 수도 있습니다 /etc/profile
. (대화식 쉘을 먼저 테스트하십시오.)
적어도 다른 방법이 없다면 올바른 방향으로 생각해야하기 때문에 두 옵션을 모두 남겨 두겠습니다.