Linux에서 비밀번호 데이터베이스 파일(/etc/passwd)을 변경할 수 있습니까?

Linux에서 비밀번호 데이터베이스 파일(/etc/passwd)을 변경할 수 있습니까?

/etc/passwd비밀번호 데이터베이스 파일( )을 다른 파일로 변경할 수 있나요 ? 이 인증 메커니즘은 내부적으로 어떻게 작동합니까? 팸에 달려 있나요?

답변1

당신 말이 맞습니다. 협의에 따라 /etc/passwdPAM 의 일부입니다. 적어도 최신 Linux에서는 그렇습니다. 를 패치하여 이 설정을 변경할 수 있습니다 . 맨페이지를 신뢰할 수 있으면 시스템 데이터베이스의 위치를 ​​변경할 수 없습니다./etc/shadowpam_unix.sopam_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

기본적으로 작동하는지 확실하지 않지만 해킹을 통해 확실히 가능합니다. 이렇게 하려면 다음이 필요합니다.

  1. nsswitch 라이브러리(/lib/libnss_files.so 또는 libnss_db.so - /etc/nsswitch.conf 확인)를 조정/해킹하여 다른 파일을 읽도록 하세요.
  2. 다른 파일을 읽을 수 있도록 pam_unix 모듈을 조정/수정하십시오.

답변4

NIS 또는 LDAP를 사용하여 사용자를 인증합니다. 해당 비밀번호는 /etc/{password/shadow} 파일에 저장되지 않습니다.

관련 정보