IT Study/AWS & Server, Network

[Linux] 사용자와 그룹 설정 파일

ITguny 2021. 9. 15. 20:57

사용자와 그룹 설정 파일

리눅스 시스템에서는 대표적으로 4개의 파일에서 사용자와 그룹 관련 정보를 담고 있다. 아래 표를 통해 살펴보자.

파일 의미
/etc/passwd 사용자 정보를 저장함.
/etc/shadow 사용자 패스워드와 관련 설정을 저장함
/etc/group 그룹 정보를 저장함.
/etc/gshadow 그룹 패스워드와 관련 설정을 저장함

 

/etc/passwd

passwd 파일은 다음 사진처럼 콜론(:)을 기준으로 여러 필드로 구성이 되어있다. 각각 필드에 알아보자.

필드 의미
1. USER 사용자의 이름을 의미함.
2. x 사용자의 패스워드를 저장하는 필드, 하지만 보안상의 이유로 x로 표시함
3. UID 시스템에서 사용자를 식별하는 UID를 의미함.
4. GID 시스템에서 그룹을 식별하는 GID를 의미함.
5. 주석 사용자의 계정에 주석을 기재함.
6 HOME 사용자의 홈디렉터리를 의미함.
7. SHELL 사용자의 기본 쉘을 의미함.

1. 첫번째 필드부터 살펴보면, 사용자의 이름을 담고 있는 필드이다. 이 필드는 대표적으로 로그인 프롬프트에서 사용자 이름 검증을 할때 사용된다. 

2. 두번째 필드는 x로 표시가 되어 있다. 초기 리눅스 시스템에서는 비밀번호가 필드에 있었다. 하지만 현재는 보안상의 이유로 /etc/shadow 파일에 비밀번호가 저장된다. /etc/shadow 파일은 뒤에서 자세히 알아볼것이다.

3. UID는 시스템에서 사용자를 식별하는 ID이다. 사용자의 이름이 다르더라도 UID가 같다면 리눅스 시스템은 같은 사용자로 인식한다. (0번은 root 사용자, 1000번 미만은 시스템 계정, 1000번 이상은 일반 사용자)

4. GID는 시스템에서 그룹을 식별하는 ID이다. 앞에서 언급한 UID와 마찬가지로 0번은 root 그룹,,, 이다.

5. 주석 GECOS 형식의 주석 필드라고 한다. <- 공부하면서 처음 앎..

6. 사용자의 홈디렉터리 경로를 절대경로로 나타냅니다. ex) /home/itguny04 등..

7. 로그인 후 실행될 프로그램의 절대경로를 나타낸다. ex) /bin/bash 등

 

/etc/shadow

/etc/shadow 파일은 앞서 말한 /etc/passwd 파일의 2번째 필드의 보안 취약점을 위해서 등장하게 되었다. 먼저 /etc/shadow 사진과 필드를 살펴보자. 

필드 의미
1. USER 사용자의 이름을 의미함.
2. HASH 해시 알고리즘으로 생성된 패스워드가 저장함.
3. LASTCHANGE 마지막으로 패스워드를 변경한 날짜를 의미함.
4. MIN 패스워드 변경 후 최소 사용 기간을 의미함.
5. MAX 패스워드 변경 후 최대 사용 기간을 의미함.
6 WARNING 만료일 전 경고 메세지 출력 설정
7. INACTIVE 만료일 이후 패스워드를 변경하지 않으면 계정을 잠금 상태로 설정
8. EXPIRE 사용자 계정의 만료일 지정
9. BLANK 사용 X

1. 첫번째 필드는 /etc/passwd 파일과 마찬가지로 사용자의 이름을 저장한다. 

2. 이 필드는 해시 비밀번호가 저장되는 필드이다. 이 필드는 ($)을 통해서 3개의 필드로 또 다시 나뉜다. 

더보기
해시 알고리즘 유형 DES, MD5, SHA-256, SHA-512가 있음.
salt 해시 함수와 함께 사용할 값이다.
Hash Password 생성된 해시 패스워드가 있다. 

3~8. 이 필드들은 계정 만료일, 패스워드 변경 등의 설정을 저장한다.

9. 해당 필드는 BLANK로 아직 사용하지 않는 필드로 예약된 필드이다. 

 

/etc/group

리눅스에서 그룹은 별 다른 옵션이 없다면 사용자를 생성할 때 사용자의 이름과 같은 그룹도 함께 생성이 된다. 사용자 그룹 정보는 /etc/passwd 파일에 저장된다. 하지만 그룹 정보를 확인하기 위해서는 /etc/group 파일에서 확인해야 한다.

먼저 사진을 보면 다른 파일에 비해서 4개의 필드로 비교적 간단하게 구성이 되어 있다.

GROUP:x:GID:MEMBER
필드 의미
1. GROUP 그룹의 이름을 의미함.
2. x 그룹의 패스워드를 저장하는 필드, 하지만 보안상의 이유로 x로 표시함.
3. GID 그룹의 아이디를 의미함.
4. MEMBER 해당 그룹을 보조 그룹으로 지정한 멤버를 저장함.

2번 필드는 /etc/passwd 파일과 마찬가지로 옛날에는 패스워드가 있었지만, 현재는 보안상의 이유로 /etc/gshadow라는 파일에 저장이 된다. 

 

/etc/gshadow

/etc/gshadow 파일은 앞서 언급한 /etc/group 파일의 2번째 필드의 보안 취약점을 위해서 등장하게 되었다. 

필드 의미
1. GROUP 그룹의 이름을 의미함.
2. PASSWORD 그해시 알고리즘으로 생성된 비밀번호를 저장함.
3. ADMIN 그룹의 관리자를 저장함.
4. MEMBER 그룹의 멤버를 저장함

2번 PASSWORD 필드를 보면 특이한 점을 찾을 수 있다. 해당 필드의 값이 '!'로 되어 있는데 이것은 그룹 패스워드가 지정되어 있지 않음을 의미한다. 

 

END

+ 여담을 붙이면 CentOS7에서는 wheel group의 member은 sudo 명령어를 통해 관리자 권한을 사용할 수 있다. 예시 사진을 보면 itguny04라는 사용자는 sudo 명령어를 통해 관리자 권한사용이 가능하다.