/etc/{passwd,shadow}를 수정하는 표준 라이브러리가 없는 이유는 무엇입니까?

/etc/{passwd,shadow}를 수정하는 표준 라이브러리가 없는 이유는 무엇입니까?

glibc가 /etc/passwd 및 /etc/shadow를 수정하기 위한 표준 라이브러리를 제공하지 않는 이유는 무엇입니까? 즉, 사용자 추가, 비밀번호 변경,

shadow소스코드를 확인해 보니 그런 인터페이스를 찾을 수 없어서 이런 결론을 내리게 되었습니다 .

답변1

왜냐하면 이것은 glibc의 책임이 아니기 때문입니다. glibc는 시스템에 설치된 다른 서비스에 인증을 위임합니다. 해당 서비스는 사용자 데이터베이스를 수정하는 기능을 제공합니다.

답변2

/etc/{passwd,shadow,group}여기서는 항상 다음과 같은 가정으로 시작합니다.단일 진실 지점(SPOT)은 Unix 시스템의 사용자 정보입니다. Sun이 도입한 1980년대 중반 이후로는 이런 일이 없었습니다.국정원.

반대 상황에 대한 API가 존재합니다.getpwnam(3)그리고 친구들. 웹사이트의 사용자 데이터 SPOT이 다음과 같은 경우LDAP 서버, 줄이는 방법을 쉽게 알 수 있습니다.풍부한 출력에 존재하는 내용만 표시합니다 /etc/{passwd,shadow}.

그러나 그 반대를 수행하는 API가 필요합니다. setpwnam(3)백엔드 데이터 저장소가 /etc/*NIS인지, 아니면 NIS인지 알지 못한 채NIS+또는 LDAP, 또는활성 디렉터리, 또는...? 바다에서 크릴새우를 걸러낼 수는 있지만 크릴 한 통에서 입방미터의 바다를 걸러낼 수는 없습니다.

답변3

생각해 보면 대답은 간단합니다. 단순히 C 표준 기능이 아니기 때문에 상호 작용할 C 표준 라이브러리가 없습니다. Windows에서는 어떻게 작동하나요?

관련 정보