추가 로그인 단계를 어떻게 추가하나요?

추가 로그인 단계를 어떻게 추가하나요?

내가 달성하고 싶은 것은 사용자에게 비밀번호를 묻기 전후에 실행되지만 컴퓨터가 성공적으로 종료되지 않는 한 컴퓨터에 대한 액세스를 처리하지 않는 대화형 프로그램입니다. 이해를 더 쉽게 하기 위해 예를 들면 다음과 같습니다.

먼저 사용자 이름과 비밀번호를 입력한 다음 무작위로 생성된 간단한 수학 문제에 정확하게 답하여 내 컴퓨터에 액세스하고 싶습니다.

이를 위해 다음 시스템 인증 파일을 사용합니다.

auth      required  pam_unix.so try_first_pass nullok nodelay
auth      optional  pam_faildelay.so delay=600000
auth      optional  pam_exec.so stdout /home/math
auth      optional  pam_permit.so
auth      required  pam_env.so

문제는 math라는 프로그램이 PAM에서 EOF를 자동으로 읽어 사실상 쓸모없게 만들기 때문에 사용자 입력을 처리할 수 없다는 것입니다. 또한 아래에서 문제가 있는 줄의 변형을 시도했는데, 이 경우 비밀번호를 읽는데, 이는 또한 내가 원하는 것이 아닙니다.

auth      optional  pam_exec.so stdout expose_authtok /home/math

답변1

PAM 단계에는 표준 출력/표준 입력이 없습니다. I/O를 수행하려면 pam_conv(3)Via를 호출해야 합니다 pam_get_item(3).

좋은 예는 다음과 같습니다ben.akrin.com관련 C 소스 코드 예제가 포함되어 있습니다.

관련 정보