사용자와 그룹 설정 파일
리눅스 시스템에서는 대표적으로 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 명령어를 통해 관리자 권한사용이 가능하다.
'IT Study > AWS & Server, Network' 카테고리의 다른 글
[AWS] aws cli / EC2 instance IAM setup / EC2 IAM 설정 (0) | 2021.10.14 |
---|---|
[AWS] aws cli / Security Group rule add, remove / 보안그룹 권한 수정 (0) | 2021.10.14 |
[Linux] init 프로세스와 로그인 과정 (0) | 2021.09.14 |
[Linux] root 사용자 원격 접속 차단 & 일반 사용자 관리자 권한 부여 (0) | 2021.08.29 |
[Server] CentOS 7 DNS 구축 (0) | 2021.08.16 |