Section 2. 사용자와 그룹 정의 파일

2.1 UNIX의 사용자와 그룹

UNIX의 사용자는 관리자, 시스템 사용자, 일반 사용자로 나눌 수 있다. 관리자 권한은 root라는 사용자, 시스템 사용자는 데몬을 실행하기 위해 이용하는 사용자를 말한다. 시스템 사용자는 배포판에 따라 그 취급이 달라지지만, 다음과 같은 공통되는 특징이 있다.

  • 사용자 생성 커맨드의 설정 파일 /etc/adduser.conf 등에서 시스템 사용자 ID의 범위가 정해져 있다.
  • /etc/shadow를 확인해보면 시스템 사용자의 비밀번호는 설정되어 있지 않다.

일반 사용자란 관리자 root와 시스템 사용자가 이용하고 있지 않은 ID를 이용하여 시스템을 이용하기만 하는 사용자를 뜻한다. 시스템 설정이나 서버 설정, 패키지 설치는 할 수 없으며 시스템에 로그인하여 설치된 커맨드를 사용하는 사용자를 가리킨다.

또한, 각 사용자는 그룹이라는 소속을 설정할 수 있으며 최소 하나의 그룹에는 들어가 있어야 한다. 그룹을 이용하면 시스템 리소스의 이용에 제한을 두거나 권한 제한을 설정할 수 있다는 장점이 있다.

2.2 비밀번호 파일(/etc/passwd)

UNIX 계정 정보가 기록된 파일은 /etc/passwd이다. 각 행에는 쌍점(:)으로 구분 지어진 다음과 같은 내용이 저장되어 있다.

  1. UNIX 사용자명
  2. 비밀번호
  3. 사용자 ID
  4. 그룹 ID
  5. 주석
  6. 홈 디렉터리

2.3 암호화한 비밀번호 저장(/etc/shadow)

/etc/shadow는 암호화된 비밀번호 파일을 관리자 권한으로만 접근할 수 있도록 하는 것이다.

$id$salt$encrypted

ID이용하는 해시 알고리즘을 나타낸다. $1은 MD5, $2는 Blowfish, $5는 SHA-256, $6은 SHA-512를 이용한다. Salt사용자의 비밀번호를 암호화하기 위한 문자열이다. Encrypted는 ID로 지정한 해시 알고리즘으로, 해시화한 비밀번호 문자열이다.

비밀번호란은 암호화된 비밀번호 이외에도 !로 비밀번호가 설정되어 있지 않음, *로는 계정 잠금, !!는 비밀번호 유효 기한 만료 등을 표시한다. 특히 *는 데몬을 실행하기 위해 이용하는 사용자의 비밀번호를 무효화하여 로그인 사용자는 이용할 수 없게끔 한다.

사용자 관리 도구

  • adduser/useradd
  • deluser/userdel
  • groupadd/groupdel
  • usermod
  • groupmod
  • passwd
  • change
  • chsh
  • chfn

2.4 사용자 그룹 파일(/etc/group, /etc/gshadow)

/etc/group

/etc/group은 시스템의 그룹을 정의하는 파일이다. 복수 사용자를 하나의 그룹으로 묶어 퍼미션을 설정함으로써 보안을 고려하여 파일이나 디렉터리에 대한 접근을 제어할 수 있다. group 파일은 한 행에 한 그룹을 정의한다. 형식은 다음과 같다.

그룹명:비밀번호:그룹ID:사용자명

비밀번호는 그룹에 설정된 비밀번호이다. 비어 있는 경우에는 비밀번호가 설정되어 있지 않다는 것을 의미한다.

그룹ID는 GID라고도 불리는 사용자 ID의 그룹 버전이다. 사용자명은 반점(,)으로 구분 지어 여러 개의 사용자명을 나열할 수 있다. 여기에 기록된 사용자가 그룹에 소속된다. 사용자는 여러 그룹에 소속될 수 있다.

명령어로 그룹을 생성하는 예는 다음과 같다.

sudo groupadd 그룹명

-g로 그룹ID도 지정할 수 있다. 지정하지 않는 경우는 99 이상의 비어 있는 번호가 할당된다.

그룹 비밀번호를 변경할 때에는 그룹 비밀번호를 변경하는 명령어인 gpasswd를 실행한다.

sudo gpasswd 그룹명

앞서 /etc/passwd가 사용자 리스트, /etc/shadow는 암호화 비밀번호가 포함된 파일이라고 설명했다. 그룹에서도 마찬가지로 /etc/group와는 별도로 /etc/gshadow 파일이 있다.

/etc/gshadow

그룹명:암호화 비밀번호:관리자:멤버

그룹명은 /etc/group에 있는 그룹과 동일하다. 암호화 비밀번호는 /etc/shadow와 같은 해시 알고리즘, Salt, 암호 값이 된다. 관리자는 비밀번호나 멤버를 변경할 수 있는 그룹 관리자로, 복수 사용자가 관리자인 경우는 반점(,)으로 구분 지어 나열한다. 멤버는 그룹에 소속되는 사용자이다.

results matching ""

    No results matching ""