1. Linux 그룹 소개
Linux 운영 체제에서 그룹은 사용자를 관심사, 책임 또는 기타 기준에 따라 묶고 공통 액세스 권한을 부여할 수 있게 해줘. 오늘은 그룹 작업, 사용자 추가 및 전반적인 관리 방법에 대해 다룰 거야. 준비됐어? 그럼 시작하자!
일상적인 비유로 시작해볼게. 여러분이 온라인 게임을 하고 있다고 상상해봐. 거기엔 길드가 있지. 각 길드엔 멤버들이 있고, 그들은 창고, 채팅, 전략 회의실 같은 공통 리소스에 접근할 수 있어. Linux에서 그룹도 같은 역할을 해. 그룹은 다음을 가능하게 해줘:
- 여러 사용자에 대한 파일 및 리소스 접근 관리를 간소화.
- 사용자를 역할이나 작업에 따라 팀으로 나누기.
- 시스템 관리자의 골칫거리를 최소화.
시스템이 사용자가 파일에 접근할 수 있는지 확인할 때, 세 가지 권한 수준을 검사해: 파일 소유자, 그룹, 그리고 나머지. 사용자가 해당 파일에 지정된 그룹에 속하고 그 그룹이 접근 권한을 가지고 있다면, 사용자는 행복하고 관리자도 만족해.
2. 그룹 관리를 위한 기본 명령어
Linux는 그룹 작업을 위한 간단하고 강력한 도구를 제공합니다: groupadd, usermod, groups, groupdel, gpasswd. 우리가 하나하나 살펴볼게요.
1. 새로운 그룹 생성하기 groupadd
시스템에 새로운 그룹을 생성하는 건 정말 간단합니다. 이를 위해 groupadd 명령을 사용합니다. 예를 들어, developers라는 그룹을 생성하고 싶다면 다음처럼 실행하면 돼요:
sudo groupadd developers
끝! 그룹이 생성되었어요. 정말 생성되었는지 확인하려면 /etc/group 파일을 확인해보세요. 이 파일은 시스템의 모든 그룹에 대한 연락처 리스트와 같아요:
cat /etc/group | grep developers
다음과 같은 줄이 보일 거예요:
developers:x:1001:
이게 뭘 의미하는지 살펴보자면:
developers— 그룹 이름.x— 비밀번호 필드 (일반적으로 사용되지 않음).1001— 고유한 그룹 ID (GID).- 두 번째 콜론 뒤 빈 공간 — 이곳엔 그룹의 사용자들이 추가됩니다.
만약 GID가 그룹의 전화번호라면, /etc/group는 전화번호부와 같아요.
2. 사용자 그룹에 추가하기 usermod -aG
이제 우리 새로운 그룹 developers에 개발자를 추가해보자. 여기엔 usermod 명령과 -aG 옵션이 사용됩니다. 예를 들어, john 사용자를 추가한다고 해봅시다:
sudo usermod -aG developers john
여기서 중요한 점:
-a옵션은 append (추가)를 의미해요. 이걸 빼먹으면, 사용자가 지정된 그룹을 제외한 모든 그룹에서 제거될 수 있어요.-G옵션은 사용자가 추가될 그룹을 나타냅니다.
사용자가 속한 그룹을 확인하려면 groups 명령을 사용하세요:
groups john
또는 id 명령을 사용해 조금 더 자세히 확인할 수도 있어요:
id john
결과는 대략 이렇게 보일 거예요:
uid=1002(john) gid=1002(john) groups=1002(john),1001(developers)
3. 사용자 그룹에서 제거하기
만약 그룹에 속한 누군가가 직업을 바리스타로 바꾸기로 했다면, 그들을 그룹에서 제거해야 해요. 이를 위해선 gpasswd 명령을 사용하면 돼요:
sudo gpasswd -d john developers
이제 john 사용자는 더 이상 developers 그룹에 속하지 않아요. groups john 명령으로 확인해보세요. 정말로 나갔는지 확인할 수 있어요.
4. 그룹 삭제하기 groupdel
더 이상 그룹이 필요 없으면 groupdel 명령으로 삭제할 수 있습니다. 예를 들어:
sudo groupdel developers
그룹에 사용자가 여전히 남아 있더라도, 이들은 그룹과 연결되지 않습니다. 단순히 그 그룹을 참조할 수 없게 될 뿐이에요.
3. 실습 과제
이제 실제 관리자처럼 그룹을 생성하고 설정하는 것을 실습해보자.
시나리오:
designers그룹을 만들어라.- 새 사용자 두 명:
alice와bob을 만들어라. - 이 사용자들을
designers그룹에 추가해라. - 사용자들이 그룹에 정말 추가되었는지 확인해라.
alice를designers그룹에서 삭제해라.
해결 방법:
1단계: 그룹 생성하기
sudo groupadd designers
2단계: 사용자 생성하기
sudo adduser alice
sudo adduser bob
3단계: 사용자 그룹에 추가하기
sudo usermod -aG designers alice
sudo usermod -aG designers bob
4단계: 추가 확인하기
groups alice
groups bob
5단계: alice를 그룹에서 삭제하기
sudo gpasswd -d alice designers
4. 특징과 일반적인 실수
그룹 작업은 고양이들과 같아: 쉬워 보이지만, 잠깐 한눈을 팔면 혼란을 일으킬 수 있어:
-aG옵션.-a를 안 쓰면, 새 그룹을 제외한 모든 그룹에서 사용자를 실수로 제거하게 돼. 특히 사용자가sudo같은 시스템 그룹에 속해 있었다면, 상당히 "재밌는" 상황이 될 거야.변경 사항은 다시 로그인해야 적용됨. 사용자가 새 그룹을 바로 못 본다고 놀라지 마! 새 권한을 얻으려면 시스템에서 로그아웃하고 다시 로그인해야 해.
이름 규칙 준수. 그룹 이름에 공백이나 특수 문자를 사용하지 마.
awesome@group같은 이름은 문제가 생길 수 있고, 관리자가 고생할 수도 있어.권한 확인. 그룹이 생성되고 추가되었나? 멋지네, 하지만 파일에 그룹 권한이 없다면, 사용자들의 기대를 저버리게 되는 거야. 명심해: 권한은 따로 확인하고 설정해야 해.
실제 생활에서
실제 프로젝트에서 그룹 관리는 다음과 같이 사용돼:
- 개발자, 테스터, 관리자 등 서버 리소스 접근 권한을 나누기 위해.
- 팀을 위한 공용 작업 디렉토리 설정을 위해.
- 데이터베이스, 설정 파일, 스크립트 및 물론 커피 머신(이건 Linux가 아직 못 도와주지만)에 대한 접근을 관리하기 위해.
이제 Linux에서 그룹을 생성하고 관리하는 방법을 알았으니, 시스템을 우아하고 효율적으로 관리할 준비가 된 거야.
GO TO FULL VERSION