답변:
실제 비밀번호 해시는 /etc/shadow
일반 사용자가 읽을 수없는에 저장됩니다 . /etc/passwd
시스템이 작동하려면 모든 사용자가 읽을 수있는 사용자 ID 및 쉘에 대한 기타 정보를 보유합니다.
/etc/shadow
. BSD는을 사용 /etc/master.passwd
합니다. Solaris는을 사용합니다 /etc/security/passwd
. HP-UX는 사용 /.secure/etc/passwd
하고 목록은 계속됩니다.
일반적으로 해시 된 비밀번호는 /etc/shadow
대부분의 Linux 시스템에 저장 됩니다.
-rw-r----- 1 root shadow 1349 2011-07-03 03:54 /etc/shadow
( BSD 시스템/etc/master.passwd
에 저장되어 있습니다 .)
인증을 수행해야하는 프로그램은 여전히 root
권한 으로 실행해야합니다 .
-rwsr-xr-x 1 root root 42792 2011-02-14 14:13 /usr/bin/passwd
setuid root
시스템의 모든 해시 된 비밀번호를 포함 하는 프로그램과 하나의 단일 파일 을 싫어하는 경우 Openwall TCB PAM 모듈로 바꿀 수 있습니다 . 이것은 모든 단일 사용자에게 해시 된 암호를 저장하기위한 자체 파일을 제공 하므로 결과적으로 setuid root
시스템 의 프로그램 수를 크게 줄일 수 있습니다.
암호는 /etc/passwd
몇 년 동안 저장되지 않았습니다 . 이름은 레거시이며 로컬 사용자 데이터베이스 기능은 그대로 유지되며 해당 목적을 위해 모든 사람이 읽을 수 있어야합니다 .
어느 정도까지는 사용자를 식별 할 수 있습니다. 과거에는 비밀번호를 선택할 수도있었습니다. 그러나 실제로 크래킹 할 가치가있는 사용자 ID는root
있는 는 비밀번호 파일없이 잘 알려져 있습니다.
암호 파일 세계를 읽을 수있게하는 유틸리티는 일반적으로 위험보다 훨씬 큽니다. 세계가 읽을 수 없었더라도 기능적getent passwd
명령은 보안 이득을 무효화합니다.
루트가 아닌 사용자가 다른 사용자가 소유 한 파일을 식별하는 기능은 사라집니다. 소유 (passwd 파일의 사용자) 및 소유되지 않은 파일 (passwd 파일에없는 사용자)을 식별 할 수 있으면 파일 시스템의 내용을 검토하는 데 유용 할 수 있습니다. 적절한 setuid
프로그램 으로이 문제를 해결할 수는 있지만 해당 프로그램을 통해 엄청난 공격 경로가 추가됩니다.
결국 그것은 균형의 문제이며,이 경우 균형이 암호 세계를 읽을 수있게하는 데 있다고 말합니다.