어떤 코드 세트가 /etc /passwd에 저장됩니까? UTF-8 일 수 있습니까? 사용자 이름에 어떤 제한이 배치됩니까?

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

문제

최신 유닉스 또는 Linux 시스템에서 어떤 코드를 설정하는지 어떻게 알 수 있습니까? /etc/passwd 파일은 사용자 이름을 저장합니까? 사용자 이름은 악센트 문자를 포함하도록 허용됩니까 (예 : ISO 8859-1 또는 8859-15의 범위에서 0x80..0xff)? 할 수 있습니다 /etc/passwd 파일에 UTF-8이 포함되어 있습니까? UTF-8이 포함되어 있다고 말할 수 있습니까? 암호화되거나 해시되기 전에 비밀번호의 일반 텍스트는 어떻습니까?

분명히, 사용자 이름과 다른 데이터가 0x00..0x7f 범위로 제한되고 (어쨌든 0x00을 제외) UTF-8, 8859-1 또는 8859-15 사이에는 차이가 없습니다. 존재하는 캐릭터는 모두 동일하게 인코딩됩니다.

또한 사용 중입니다 /etc/passwd UNIX 기반 머신의 "사용자 식별 및 인증 데이터베이스 (때로는 디렉토리 서비스라고 함) 라인을 따라 무언가에 대한 약어로서 일반적으로 PAM을 통해 액세스되며 때로는 로컬 컴퓨터에서 다른 시스템에서 모두 호스팅되지만 때로는 여전히 실제로 전통적으로 호출되는 로컬 하드 디스크의 파일 /etc/passwd, 종종 지원합니다 /etc/shadow". 또한 그룹 데이터베이스에 대한 동등한 질문 (종종 /etc/group 파일)도 같은 대답이 있습니다.

도움이 되었습니까?

해결책

모두 ASCII입니다. 그러나 암호 자체는 결코 저장되지 않습니다. 단방향 해시의 결과 만 저장되지 않습니다. 비밀번호 자체에 어떤 문자가 있는지 궁금해하는 경우 로케일에 따라 달라 붙어 터미널이 처리 할 수있는 문자를 제한합니다. "Man Locale"참조

BSD Man 페이지에서 :

"/etc/passwd ascii 비밀번호 파일 ..."

사용자 이름은 Solaris가 ASCII 만 지원한다고 말할 수 있습니다. 나는 다른 유닉스 엔에 대해 말할 수 없습니다.

"Solaris 2와 Solaris 7Can의 모든 물체가 임의의 문자로 구성된 이름을 가진 것은 아닙니다. 다음 객체의 이름은 ASCII 문자로 구성되어야합니다.

* User names, group name, and passwords
* System name ...

"

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