67. Create Delete and Modify Local Groups and Group Memberships
개요
Linux에서 로컬 그룹 관리는 파일 권한과 시스템 권한 관리를 단순화합니다. 개발자, 관리자, 컨테이너 관리자 등 사용자를 그룹화하여 프로젝트 파일이나 중요 시스템 기능에 대한 접근을 효율적으로 제어합니다.
특수 시스템 그룹
| 그룹 | 권한 설명 |
|---|---|
wheel/sudo | root 권한으로 모든 명령어 실행 |
docker | root 권한 없이 Docker 컨테이너 관리 |
각 사용자는 기본(로그인) 그룹 하나와 여러 보조(추가) 그룹에 속할 수 있습니다.
새 그룹 생성 및 사용자 추가
사용자 john이 존재하는지 확인하고 Developers 그룹 생성:
$ sudo adduser john
$ sudo groupadd developers
gpasswd로 John을 Developers 그룹에 추가:
$ sudo gpasswd --add john developers
John의 그룹 멤버십 확인:
$ groups john
john: john developers
보조 그룹에서 제거:
$ sudo gpasswd --delete john developers
# 또는 단축형
$ sudo gpasswd -d john developers
사용자의 기본 로그인 그룹 변경
usermod 명령어로 John의 기본 그룹을 Developers로 변경:
$ sudo usermod --gid developers john
확인:
$ groups john
john: developers
gpasswd는 사용자명 다음에 그룹명이 오지만, usermod는 그룹명 다음에 사용자명이 옵니다.그룹 이름 변경 및 삭제
"developers" 그룹을 "programmers"로 이름 변경:
$ sudo groupmod --new-name programmers developers
# 또는 단축형
$ sudo groupmod -n programmers developers
그룹 삭제:
$ sudo groupdel programmers
사용자의 기본 그룹인 경우 오류가 발생합니다:
groupdel: cannot remove the primary group of user 'john'
그룹 삭제 전에 해당 사용자의 기본 그룹을 먼저 변경해야 합니다. 보조 그룹은 어떤 사용자의 기본 그룹도 아닌 경우 삭제할 수 있습니다.