리눅스

리눅스 마스터 2급 - 리눅스 명령어 (그룹 관리)

알럽유 2025. 5. 8. 21:21
728x90

그룹 관리

그룹(Group)의 개요

리눅스는 서버 운영체제인 유닉스의 모델로 만들어진 운영체제이다.
서버인 경우에는 하나의 시스템에 다수의 사용자가 접속해서 사용하는 환경이고,

이러한 환경에서는 사용자 간의 파일 공유가 필요한 상황이 발생할 수도 있다.
서버에 존재하는 많은 사용자 중에 특정 사용자끼리 파일 공유를 할 때 유용한 것이 그룹(Group)이라 할 수 있다.
공유를 원하는 사용자들을 같은 그룹으로 묶어서 허가권(Permission) 설정을 통해 파일 및 디렉터리를 공유할 수 있다.

리눅스에서 모든 사용자는 하나 이상의 그룹에 반드시 속하도록 설정되어 있다.
사용자 추가 시 그룹 설정을 하지 않으면 GID가 1001인 users 그룹에 속하도록 되어 있다.
그러나 레드햇 계열 리눅스에서는 사용자간의 불필요한 공유를 막기 위해 사용자의 아이디와 동일한 그룹을 생성해 단독으로 그룹에 포함되도록 설정되어 있다.
따라서 레드햇 계열 리눅스에서 사용자들을 동일한 그룹으로 묶기 위해서는 그룹을 생성하고,

usermod 명령을 이용해서 사용자 정보 변경 작업을 해야 한다.

 

그룹(Group)의 조회

리눅스에 등록되어 있는 그룹의 목록은 /etc/group에서 확인할 수 있다.
그룹을 추가하면 이 파일에 등록되고, 삭제하면 이 파일목록에서 제거된다.
또한 그룹의 패스워드도 사용자 패스워드처럼 별도의 파일인 /etc/gshadow에서 관리된다.
/etc/group은 4개의 필드로 구성되어 있고, tail 명령으로 확인해본다.

dongwok@localhost ~]$ tail /etc/group
radvd:x:75:
kvm:x:36:qemu
qemu:x:107:
gdm:x:42:
sshd:x:74:
tcpdump:x:72:
slocate:x:21:
dongwok:x:106:
 

 

기본구조

GroupName:Password:GID:Member_List
필드 설명
GroupName 그룹 이름을 나타낸다. 보통 groupadd 명령으로 생성한 그룹명이다.
Password 그룹 패스워드를 나타내는 부분이지만, 대부분의 리눅스 배포판에서는 그룹 패스워드도 /etc/gshadow에서 별도로 관리된다. 별도로 관리되는 경우에는 x라고만 나타난다.
GID 리눅스에서 그룹에 부여한 숫자값이다.
Member_List 해당 그룹에 속한 사용자의 아이디가 기록된다. 주 그룹(Primary Group)이 아닌 2차 그룹(Secondary Group) 멤버들이 기록된다.

그룹의 암호는 /etc/gshadow에서 관리되는데, /etc/group과 동일한 4개의 필드로 구성되어 있다.
이 파일은 root만 확인 가능하므로, root로 로그인한 뒤에 다음 그림과 같이 tail 명령으로 확인해본다.

 

[root@localhost ~]# tail /etc/gshadow
radvd:!::  
kvm:!::qemu  
qemu:!::  
gdm:!::  
sshd:!::  
tcpdump:!::  
slocate:!::  
dongwok:!::  

기본구조

GroupName:Password:Admin:Member_List

필드 설명
GroupName 그룹 이름
Password 그룹 암호 (설정되었을 경우)
Admin 해당 그룹을 관리하는 관리자 계정
Member_List 해당 그룹에 소속된 사용자 목록 (,로 구분됨)

 

관련 명령어: grpconv, grpunconv

그룹의 패스워드를 /etc/gshadow 파일에서 관리하고 있는데,
만약 /etc/group에서 관리하려면 grpunconv 명령을 실행하면 된다.
그러나 사용자 암호 관리와 마찬가지로 보안 측면에서는 별도의 파일로 관리하는 것이 좋으므로,
해당 명령을 실행했을 경우에는 grpconv 명령을 실행하여 /etc/gshadow에서 관리하도록 한다.

 

관련 명령어: grpck

grpck는 Group Check의 약자로 사용자 관련 파일인 /etc/group과 /etc/gshadow를 점검해준다.
grpck가 점검하는 일에는 다음이 포함된다:

  • 각 그룹의 필드 개수 검사
  • 그룹 중복 유무 검사
  • 유효한 그룹 여부 검사
  • 유효한 GID 여부 검사
  • 그룹 멤버와 관리자 검사

 

 

 

그룹 생성: groupadd

새로운 그룹을 생성하는 명령으로 root만 사용 가능한 명령어이다.

 

사용법

# groupadd [option] 그룹명

 

주요 옵션

옵션 의미
-g 생성과 동시에 GID를 부여하고 싶을 때 사용한다. 레드햇 리눅스 기준으로 0 ~ 499까지의 GID는 root, bin, mail 등 시스템 레벨 계정에서 사용하기 위해 예약되었으므로 500번 이상을 사용해야 한다.
(다른 배포판은 0 ~ 999까지 예약되어 있고, 최근 배포판 리눅스에서는 큰 제약 없이 499 이하의 GID가 할당되기도 한다.)
-r  생성하는 그룹을 시스템 레벨로 생성할 때 사용한다. GID 값 중 시스템에 예약되어 있는  0~499 가 GID로 할당된다.

사용예

# groupadd name

➔  name 이라는 그룹을 생성합니다.

 

 

 

그룹 변경: groupmod

그룹명이나 GID를 변경할 때 사용하는 명령이다.

 

사용법

# groupmod [option] 그룹명

 

주요 옵션

옵션 의미
-n 그룹의 이름을 변경한다. (--new-name)
-g 그룹의 GID를 변경한다. (--gid)

사용 예

# groupmod -n name2 name

➔ name이라는 그룹의 이름을 name2로 변경한다.

 
# groupmod -g 555 name

➔ name이라는 그룹의 GID를 555로 바꾼다.

 

 

 

그룹 삭제: groupdel

생성된 그룹을 삭제하는 명령이다.
참고로 삭제할 그룹에 속한 사용자가 없어야 하는데,
2차 그룹(Secondary Group)으로 속한 사용자들은 존재해도 상관없다.

 

사용법

# groupdel 그룹명

 

사용 예

# groupdel name

➔ name이라는 그룹을 삭제한다.