C 프로그램에 Linux 사용자 비밀번호 쓰기

C 프로그램에 Linux 사용자 비밀번호 쓰기

sudo 작업을 수행하기 위해 호출되는 Linux용 PAM을 구현하려고 합니다. 그 목적은 cmd에서 sudo 작업을 수행할 때 비밀번호를 입력한 후 사용자에게 휴대폰으로 전송되는 문자 메시지를 요청하는 것입니다. 이 비밀번호는 일반 인증 PAM(Linux의 기본 PAM)을 통해 요청될 것으로 예상됩니다. 사용자가 입력한 일반 텍스트 비밀번호는 해시 값으로 변환한 다음 해시 값과 비교하여 일반 인증 PAM에서 확인됩니다. 섀도우 파일에 이제 이 범용 인증 PAM으로 인증한 후 내 사용자 정의 PAM이 호출되지만 사용자가 입력한 일반 비밀번호를 유지하거나 액세스할 수 없습니다. 내 사용자 정의 PAM), sudo 이후에 사용자가 입력한 일반 비밀번호에 어떻게 액세스합니까? 범용 인증 PAM에서 내 사용자 정의 PAM으로 일반 비밀번호를 전달할 수 있습니까?

사용자가 SUDO를 시도할 때 다단계 인증 역할을 하는 사용자 지정 PAM을 구현하려고 합니다. 따라서 이러한 사용자 자격 증명을 내 휴대폰으로 SMS(OTP)를 보내는 API로 보내야 합니다. API 요청을 보내는 C 프로그램이 있는데 프로그램에 비밀번호를 전달해야 합니다.

"pwd.h" 파일에서 사용자 이름에 액세스했습니다. 그러나 비밀번호는 접근할 수 없습니다.

답변1

PAM 모듈에서 사용자 인증 토큰을 얻는 방법은 다음과 같습니다.pam_get_authtok.

그러나 비밀번호를 전달하는 것은 일반적으로 좋은 생각이 아닙니다. 귀하의 문자 메시지 서비스가 실제로 사용자의 비밀번호를 알아야 합니까? (나는 답을 찾는 것이 아니라 질문할 가치가 있는 제안을 찾는 것입니다.)

관련 정보