Linux가 다중 사용자 환경을 어떻게 효율적으로 관리하는지 궁금하십니까? 이 기사에서는 Linux가 사용자 비밀번호와 로그인을 저장하고 관리하는 방법에 대해 설명합니다.
/etc/passwd 파일 탐색
사용자가 사용자 이름과 비밀번호를 입력하면 Linux는 “/etc” 디렉토리에 있는 여러 파일의 항목에 대해 입력된 비밀번호를 확인합니다.
“/etc/passwd”는 사용자 세부 정보를 저장하는 가장 중요한 파일 중 하나입니다.
이 파일의 마지막 항목은 “carbon” 사용자에 해당합니다. 콜론(:)으로 구분된 여러 정보 필드가 있습니다.
carbon: 이 항목에 해당하는 사용자의 이름입니다.x: 사용자의 암호가 있음을 나타냅니다. 단, 비밀번호는 “/etc/shadow” 파일에 저장됩니다. 대신에x그것은 보여줍니다!기호는 비밀번호가 존재하지 않음을 나타냅니다.1000: 이 사용자의 사용자 ID입니다.1000: 이 사용자가 속한 그룹의 그룹 ID입니다.carbon, , ,: 이름과 전화번호를 포함한 여러 정보 필드를 나타냅니다. 여기에는 전화번호가 제공되지 않았습니다./home/carbon: 이 사용자에게 할당된 홈 디렉토리의 위치입니다./bin/bash: 이 사용자에게 할당된 기본 셸입니다.
일부 전화 번호가 저장된 다른 사용자를 생성해 보겠습니다. 사용자 “pluto”는 다음을 사용하여 시스템에 추가됩니다. adduser 명령.

“etc/passwd” 파일을 다시 보면 사용자 “pluto”에 대한 전체 정보를 볼 수 있습니다. 전체 이름과 숫자가 쉼표로 구분된 목록이 있는 필드를 “GECOS 필드”라고 합니다.

사용자가 생성될 때마다 “/etc/adduser.conf” 파일에 할당해야 하는 홈 디렉터리 및 기본 셸 값이 지정됩니다.

생성된 사용자의 사용자 ID는 1000부터 시작하여 최대 59999까지입니다.
“carbon” 사용자는 단순히 다음을 사용하여 “/etc/passwd” 파일의 항목을 볼 수 있었습니다. cat 명령. 권한을 살펴보겠습니다.

“루트” 사용자만 파일에 쓸 수 있습니다. 다른 사용자는 파일을 읽을 수만 있습니다. 이 파일은 모든 사람이 읽을 수 있으므로 여기에 암호를 저장하는 것은 이상적이지 않습니다. 대신 “/etc/shadow”라는 다른 파일에 저장됩니다.
/etc/shadow 파일 탐색
이제 “/etc/shadow” 파일에서 사용자 “carbon” 및 “pluto”에 대해 저장된 암호를 보도록 하겠습니다.

“/etc/shadow” 파일에 대한 권한을 살펴보면 “root” 사용자만 파일을 읽고 쓸 수 있음을 알 수 있습니다. 또한 “shadow” 그룹의 구성원만 파일을 읽을 수 있습니다. 실제로 “섀도우” 그룹은 비어 있지만 구문상 이 파일에 필요합니다.

“root”로 로그인하면 “/etc/shadow”의 마지막 10줄을 볼 수 있습니다. “/etc/passwd”의 모든 항목에 대해 이 파일에 해당 항목이 있습니다. 형식은 다음과 같습니다.
pluto:$6$JvWfZ9u....:18283:0:99999:7:::

이 파일에서도 모든 항목에는 콜론(:)으로 구분된 여러 필드가 있습니다. “pluto” 사용자의 항목을 해독해 보겠습니다.
pluto: 이 항목에 해당하는 사용자의 이름입니다.$6$JvWfZ9u.$yGFIqOJ....: 사용된 해시 알고리즘에 대한 정보와 함께 저장된 해시된 사용자 암호입니다. 또한 암호 해시를 생성하기 위해 일반 텍스트 암호와 함께 솔트 값이 사용됩니다.
{ plaintext password, salt} -> hashed password
이 필드의 내용을 처리하겠습니다. 그만큼 $ 기호는 세 개의 필드를 구분하는 구분 기호로 사용됩니다.
$6 $JvWfZ9u. $yGFIqOJ....
$6: 사용된 해싱 알고리즘. 잠재적인 해싱 알고리즘 목록은 다음과 같습니다.- $1 : MD5
- $2a : 복어
- $2y : 복어
- $5 : SHA-256
- $6 : SHA-512
$JvWfZ9u.: 소금 값.$yGFIqOJ....: 해시된 암호.
결과 해시 값은 사용자의 암호화된 암호로 저장됩니다. 솔트 값은 모든 사용자에게 고유합니다. 두 명의 사용자가 동일한 일반 텍스트 암호를 가지고 있더라도 고유한 솔트를 사용하면 고유한 해시 값이 생성됩니다.
이 항목의 나머지 필드에 이어
18283: 1970년 1월 1일 이후 비밀번호가 마지막으로 변경된 일수를 나타냅니다.0: 이 필드는 암호를 변경할 수 있는 일 수를 나타내는 데 사용됩니다. 값 0은 암호를 언제든지 변경할 수 있음을 의미합니다.99999: 이 필드는 암호를 변경해야 하는 일 수를 나타냅니다. 값 99999는 사용자가 원하는 만큼 암호를 유지할 수 있음을 나타냅니다.7: 암호가 만료되도록 설정된 경우 이 필드는 암호 만료에 대해 사용자에게 경고할 일 수를 나타냅니다.: : :여기서는 비어 있지만 세 개의 추가 필드가 이 항목의 일부입니다. 첫 번째는 비밀번호 만료 후 대기 일수를 나타내며 그 이후에는 계정이 비활성화됩니다. 두 번째는 1970년 1월 1일 이후 계정이 비활성화된 일 수를 나타냅니다. 세 번째 필드는 나중에 사용하기 위해 예약되어 있습니다. 빈 필드는 이 사용자의 기존 암호가 만료되지 않았으며 곧 만료되도록 설정되지 않았음을 나타냅니다.
비밀번호 유효성과 관련된 마지막 7개 필드를 통틀어 “비밀번호 에이징 정책”에 대한 정보를 담는다고 합니다.
“비밀번호 에이징 정책”에 해당하는 기본값은 “/etc/login.defs” 파일에 지정되어 있습니다. 이 값은 사용자가 다음을 사용하여 변경할 수 있습니다. change 명령.

그룹 정보는 어떻게 되나요?
사용자 정보와 암호는 “/etc/passwd” 및 “/etc/shadow” 파일에 저장됩니다. 마찬가지로 그룹 정보는 “/etc/group” 파일에 저장됩니다.

위에서 강조 표시된 것은 사용자 “carbon” 및 “pluto”에 속하는 그룹입니다. Linux에서 사용자가 생성되면 해당 사용자는 사용자 이름과 동일한 이름을 가진 그룹에 즉시 할당됩니다.
그룹의 구성원도 그룹 관련 활동을 위해 그룹 암호를 공유할 수 있습니다. 의 가치 x 해당 그룹의 암호 정보가 “/etc/gshadow” 파일에 있음을 나타냅니다.
그러나 “/etc/gshadow”에 대한 액세스는 “root” 사용자로 제한됩니다.

“root” 사용자는 “/etc/shadow”와 유사한 “/etc/gshadow” 항목을 볼 수 있습니다. “탄소” 그룹 항목을 보면 두 번째 필드의 값이 !이 그룹에 대한 비밀번호가 없음을 나타냅니다.

함께 모아서
사용자가 로그인을 원할 때 “/etc/shadow”에서 해당 사용자의 솔트 값을 사용하여 입력된 암호의 해시를 찾습니다. 그런 다음 저장된 해시와 비교됩니다. 값이 일치하면 사용자에게 액세스 권한이 부여됩니다.
- Linux에서 루트 암호를 재설정하는 방법
- Linux의 터미널에서 사용자 비밀번호를 관리하는 방법
우리의 활동을 지원해주세요 ❤️
이 글이 마음에 드셨다면, 앞으로도 좋은 콘텐츠를 계속 발행할 수 있도록 팁을 남겨주세요.




















