Computer >> 컴퓨터 >  >> 시스템 >> Linux

리눅스 섀도우 비밀번호 파일(/etc/shadow)이란? 개념과 보안 역할 총정리

섀도우 비밀번호 파일(/etc/shadow)이란?

섀도우 비밀번호 파일(shadow password file)은 흔히 /etc/shadow로 알려진 리눅스 시스템 파일로, 사용자들의 암호화된(해시된) 비밀번호를 저장하는 역할을 합니다. 이 파일은 오직 루트(root) 사용자만 접근할 수 있도록 제한되어 있어, 허가되지 않은 사용자나 악의적인 공격자가 시스템에 침입하여 비밀번호를 탈취하는 것을 방지합니다.

왜 /etc/shadow 파일이 필요한가?

과거에는 비밀번호를 /etc/passwd 파일에 직접 저장하는 것이 일반적인 관행이었습니다. 그러나 /etc/passwd 파일은 일반 사용자도 읽을 수 있어야 했기 때문에, 해시된 비밀번호가 외부에 노출될 경우 무차별 대입 공격(brute-force attack)이나 사전 공격(dictionary attack)에 취약해지는 심각한 보안 문제가 있었습니다.

이러한 취약점을 해결하기 위해 최신 리눅스 배포판에서는 실제 비밀번호 정보를 /etc/passwd 대신 /etc/shadow 파일에 별도로 저장하는 방식을 사용합니다.

/etc/passwd와 /etc/shadow의 차이

전통적인 방식에서는 비밀번호 정보가 /etc/passwd 파일에 함께 관리되었지만, 현재는 다음과 같이 역할이 분리되어 있습니다.

  • /etc/passwd: 사용자 계정의 기본 정보(사용자 ID, 홈 디렉터리, 기본 셸 등)를 저장하며, 일반 사용자도 읽을 수 있습니다.
  • /etc/shadow: 실제 해시된 비밀번호와 비밀번호 만료일, 변경 가능 최소 일수 등의 정책 정보를 저장하며, 루트 권한으로만 접근할 수 있습니다.

/etc/shadow 파일의 구조

/etc/shadow 파일의 각 행은 콜론(:)으로 구분된 여러 필드로 구성되며, 일반적으로 다음과 같은 형식입니다.

사용자이름:해시된비밀번호:최종변경일:최소변경일수:최대유효일수:만료경고기간:계정비활성기간:계정만료일

이러한 구조 덕분에 관리자는 단순히 비밀번호를 안전하게 보관하는 것을 넘어, 비밀번호 주기 정책과 계정 유효 기간까지 체계적으로 관리할 수 있습니다.

마무리

섀도우 비밀번호 파일은 리눅스 시스템 보안의 핵심 요소 중 하나입니다. /etc/passwd와 /etc/shadow로 민감한 정보를 분리함으로써, 시스템은 비밀번호 유출 위험을 크게 줄이고 무단 침입 시도로부터 더욱 안전하게 사용자를 보호할 수 있습니다.