/ 레드햇

6.2 Understanding User Properties

레드햇 rhcsa 사용자 속성
https://4am.kr/6-2-understanding-user-properties/

사용자 속성(in /etc/passwd)

user_properties_diagram1

속성에 대한 자세한 설명
  • 사용자명: 사용자에 대한 유일한 이름이다. 사용자명은 /etc/shadow 에 분리되어 저장되어 있는 비밀번호를 찾음에 있어서 중요하다. 리눅스에서는 사용자명에 빈칸을 허용하지 않는다.
  • 비밀번호: 예전에는 /etc/passwd 의 두번째 필드에 사용자의 비밀번호의 해시가 저장되어 있었다. /etc/passwd 파일은 모든 사용자가 읽는 것이 가능했으므로, 보안 위협 문제를 야기했고, 그런 이유로 현재 리눅스 시스템은 비밀번호를 /etc/shadow 파일에 저장하고 있다.
  • UID: 각 사용자들은 유일한 사용자 ID(UID)를 가지고 있다. 이것은 숫자 ID이다. UID는 정말로 사용자가 무엇을 할 수 있는지 구분해준다. 사용자에게 권한이 할당되었을 때, UID는 파일의 메타데이터에 저장된다(사용자명이 아니다). UID 0은 제한이 없는 root 사용자를 위해 예약된다. 낮은 UID들(일반적으로 999까지)은 시스템 계정에 사용되고, 높은 UID들(기본으로 1000 까지)은 서버에 접속해 디렉토리 접근을 필요로 하는 사용자를 위해 예약되어 있다. 일반 사용자 계정에 사용되는 UID의 범위는 /etc/login.defs에 지정되어 있다.
  • GID: 리눅스에서 각 사용자는 최소한 하나의 그룹의 구성원이다. 이 그룹은 기본 그룹을 참조하고, 이 그룹은 권한 관리에서 중요한 역할을 한다.
  • 코멘트 필드: 코멘트 필드는 이름에서 예상한 것처럼 사용자 계정에 대해 코멘트를 추가하는데 사용된다. 이 필드는 선택적인 필드 이지만, 생성될 사용자 계정에 대해 설명하는데 사용될 수 있다. 지문 프로그램과 같은 몇몇의 프로그램들은 이 필드에서 정보를 가져오기도 한다. 이 필드는 GECOS 필드로 참조되기도 하는데, 여기서 GECOS는 General Electric Comprehensive Operating System의 약자를 나타낸다. 1970년대 초반에 서버의 주요 제조자였던 General Electric에서 일을 구분하기 위한 목적으로 사용되었다.
  • 디렉토리: 이 필드는 사용자가 로그인 이후 보게되는 최초 디렉토리를 정의하고 있다. 또한 사용자의 홈 디렉토리로서도 사용된다. 만약에 계정이 사용자에 의해 사용된다면, 사용자 개인의 파일들과 프로그램들이 이 디렉토리에 저장되게 된다. 시스템 사용자 계정으로 사용된다면, 서비스가 운영되는동안 필요로 하는 파일들을 저장하는 환경이 된다.
  • 쉘: 이 필드는 서버에 성공적으로 사용자가 접속했을 때의 프로그램을 정해놓은 필드이다. 대부분의 사용자들은 이 필드를 기본 리눅스 쉘인/bin/bash로 사용하고 있다. 시스템 사용자 계정은 일반적으로 /sbin/nologin으로 사용한다. /sbin/nologin 커맨드는 사용자의 접근을 자동으로 거부하는 커맨드이다(사고로 침입자가 서버에 로그인했을 때, 어떤 쉘 접속도 얻지 못하도록 하기 위함이다). /sbin/nologin으로 되어 있는 사용자가 로그인을 위해 쉘에 접속 시도했을 때 보여지는 메시지를 담고 있는 /etc/nologin.txt파일을 생성할 수 있다.

사용자 속성(in /etc/shadow)

user_properties_diagram2

  • 사용자명: /etc/shadow는 사용자명은 포함하고 있는 반면, UID는 포함하고 있지 않다. 이것은 같은 UID를 사용하고, 다른 비밀번호를 가지는 여러 사용자에 대한 가능성을 열어준다(그렇지만 그러한 방향을 권장하지는 않는다).
  • 암호화된 비밀번호: 이 필드는 안전하게 저장될 비밀번호를 위한 필드이다.
  • (1970년 1월 1일 이후) 최종 비밀번호 수정일: 날짜의 시작이라는 관점에서 많은 부분에 리눅스는 이 날짜를 기준으로 한다.
  • 비밀번호 최소 사용기간(최소 며칠이 지난 뒤에 패스워드를 바꿀 수 있는지): 이 필드는 비밀번호가 변경되고 바로 원래 비밀번호를 바꿀 수 없게 한다는 점에서, 시스템 관리자들이 좀더 엄격한 비밀번호 정책을 사용할 수 있도록 한다. 기본적으로 이 필드는 0으로 설정되어 있다.
  • 비밀번호 최대 사용기간(패스워드를 반드시 바꿔야 하는 날로 부터 며칠이나 지났는지): 이 필드는 비밀번호의 최대 사용가능기간을 가진다. 기본적으로 99999로 설정되어 있다(약 273년).
  • 비밀번호 만료 이후 사용자 알림 기간(패스워드가 만기가 되었음을 며칠 동안 사용자에게 계속 주의를 줄 것인지): 이 필드는 강제적인 비밀번호 변경이 다가온다는 것을 사용자에게 경고하는데 사용된다. 기본은 7로 설정되어 있다(비밀번호 기간이 99999일로 설정되어 있다고 할지라도).
  • 비밀번호 만료 관련 사용자 알림 기간(패스워드가 만기가 되어서 계정이 사용불가가 된지 며칠이나 되었는지): 이 필드는 비밀번호 변경을 강제하기 위해 사용된다. 비밀번호 만료 이후에 더이상 사용자는 로그인 할 수 없다.
  • 1970년 1월 1일 기준 계정 비활성화 기간(계정이 사용불가가 된 것이 1970년 1월 1일부터 계산하여 며칠째였는지): 관리자는 이 필드를 계정의 비활성화를 위해 사용할 수 있다. 이 필드는 일반적으로 계정 삭제보다 더 나은 접근 방식으로서 계정 관련된 모든 속성과 파일들이 보존되지만 더 이상 서버에 인증을 할 수 없게 하는데 사용된다.
  • "장래에의 사용"을 위해 예약된 필드: 오래 전 예약된 필드이다. 아마도 사용되지 않을 것이다.