루트로 실행되지 않을 때 Linux에서 로그인 자격 증명을 확인하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1948535

문제

브라우저에서 실행되는 C에서 CGI-BIN 응용 프로그램을 작성했으며 사용자가 대화식 쉘을 열고 Linux 시스템에서 파일을보고 및 편집 할 수 있습니다. 표준 Apache "www-data"사용자로 실행됩니다. 방금 사용자가 이름과 암호로 유형 (양식)을 입력하는 로그인 화면을 추가했지만 사용 사용 사용자를 인증 할 수 없습니다. getspnam 이 함수는 루트로 실행될 때만 작동하므로 작동합니다.

루트로 실행되지 않을 때 사용자의 로그인 자격 증명을 확인 해야하는 옵션은 무엇입니까?

PS : 대화식 쉘에서 "SU 루트"를 입력 한 다음 비밀번호를 입력하면 루트가 잘 높아져 상호 작용으로 수행 할 수 있습니다.

도움이 되었습니까?

해결책

PS와 관련하여 : 글쎄, 당신이 할 때 su root 루트 사용자로 전환하고 있습니다. 그렇습니다. 물론 루트는 그림자 파일을 읽을 수 있습니다.

문제와 관련하여 : Apache 프로세스가 일시적으로 루트로 향상시킬 수는 없습니다 (전화로 setuid 또는 유사한) 인증을 수행하기 위해?

행운을 빕니다!

다른 팁

나는 당신이보고 싶다고 생각합니다 플러그 가능한 인증 모듈. Afaik, Pam은 당신을 위해 모든 지저분한 것들을 처리하며 Linux 호스트에서 사용자를 인증하기 위해 백엔드에 대해 사용자를 인증하기 위해 몇 가지 기능 호출을 수행하면 (그림자 암호, NIS, LDAP 등)

여기 짧은 것입니다 가이드 C 코드를 그들과 통합하는 것에 대해

제안한 바와 같이, 나는 Pam이 이것을하는 현대적인 방법이라고 생각합니다. 그러나 구식 학교에 가려면 인증을 수행하려면 세트 뿌리 프로그램 (대본이 아님)을 만들어야합니다.

Setuid-Root 프로그램이 많은 Gotchas가 있기 때문에 Pam이 더 나은 이유입니다.

여기 링크가 있습니다 세트 뿌리 프로그램을 안전하게 작성하는 좋은 논문에.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top