![Linux에서 비밀번호 데이터베이스 파일(/etc/passwd)을 변경할 수 있습니까?](https://linux55.com/image/23613/Linux%EC%97%90%EC%84%9C%20%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8%20%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4%20%ED%8C%8C%EC%9D%BC(%2Fetc%2Fpasswd)%EC%9D%84%20%EB%B3%80%EA%B2%BD%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
/etc/passwd
비밀번호 데이터베이스 파일( )을 다른 파일로 변경할 수 있나요 ? 이 인증 메커니즘은 내부적으로 어떻게 작동합니까? 팸에 달려 있나요?
답변1
당신 말이 맞습니다. 협의에 따라 /etc/passwd
PAM 의 일부입니다. 적어도 최신 Linux에서는 그렇습니다. 를 패치하여 이 설정을 변경할 수 있습니다 . 맨페이지를 신뢰할 수 있으면 시스템 데이터베이스의 위치를 변경할 수 없습니다./etc/shadow
pam_unix.so
pam_unix.so
그리고 당신은 정말로 그렇게 하고 싶지 않습니다. /etc/passwd
인증뿐만 아니라 (역)이름 확인 및 사용자의 전체 이름, 셸 등을 찾는 데도 사용됩니다. 이름과 위치는 너무 표준화되어 있으므로 이동하면 PAM 외부의 문제가 거의 확실하게 중단됩니다. 예상보다 훨씬 더 많은 것을 만지작거려야 합니다.
고쳐 쓰다:보안상의 이유로 파일을 숨기려는 경우에도 /etc/{passwd,shadow,group}
걱정하지 마세요. 모호한 보안은 정책으로서 거의 도움이 되지 않습니다. 이를 그대로 두고 나머지 정책을 강화하세요.
업데이트: 가능한 해결책
다른 사용자/그룹 데이터베이스 세트에 액세스해야 하는 맞춤형 소프트웨어가 있는 경우 관련 PAM 및 NSS 모듈을 복사하여 패치할 수 있습니다.그들을사용자 정의 데이터베이스를 사용하십시오. 원래 UNIX 데이터베이스는 그대로 유지되므로 소프트웨어가 난독화되지 않습니다. 하지만 필요할 때마다 사용자 정의 모듈을 사용하도록 PAM 및 NSS를 설정하고 자신에게 적합한 전략을 사용할 수 있습니다.
UNIX 데이터베이스를 본질적으로 원시적으로 유지하면 원하는 것을 얻을 수 있습니다. 이것이 PAM/NSS 모듈이 하는 일과 거의 같습니다 radius
.ldap
추가의(대체 아님) 자격 증명 및 사용자/그룹 정보의 소스입니다.
한 단계 더 나아가서 PAM 및 NSS를 사용하고 Unix 데이터베이스 조회를 완전히 비활성화할 수 있습니다. 파일은 이전 소프트웨어에 그대로 둡니다(물론 사용자/그룹 데이터베이스에 대한 보기는 정확하지 않지만 적어도 손상되지는 않습니다).
답변2
당신이 찾고 있는 것은 pam_pwdfile
모듈입니다. Debian/Ubuntu에서 이 패키지는 libpam-pwdfile
(RedHat 파생 배포판에 대해서는 확실하지 않음)입니다.
패키지에는 README
사용 방법에 대한 지침이 함께 제공됩니다.
답변3
기본적으로 작동하는지 확실하지 않지만 해킹을 통해 확실히 가능합니다. 이렇게 하려면 다음이 필요합니다.
- nsswitch 라이브러리(/lib/libnss_files.so 또는 libnss_db.so - /etc/nsswitch.conf 확인)를 조정/해킹하여 다른 파일을 읽도록 하세요.
- 다른 파일을 읽을 수 있도록 pam_unix 모듈을 조정/수정하십시오.
답변4
NIS 또는 LDAP를 사용하여 사용자를 인증합니다. 해당 비밀번호는 /etc/{password/shadow} 파일에 저장되지 않습니다.