CodeGym /행동 /Docker SELF /그룹 관리: 그룹 생성, 사용자 추가 및 삭제 (`groupadd`, `usermod -aG`, `gr...

그룹 관리: 그룹 생성, 사용자 추가 및 삭제 (`groupadd`, `usermod -aG`, `groups`)

Docker SELF
레벨 2 , 레슨 2
사용 가능

1. Linux 그룹 소개

Linux 운영 체제에서 그룹은 사용자를 관심사, 책임 또는 기타 기준에 따라 묶고 공통 액세스 권한을 부여할 수 있게 해줘. 오늘은 그룹 작업, 사용자 추가 및 전반적인 관리 방법에 대해 다룰 거야. 준비됐어? 그럼 시작하자!

일상적인 비유로 시작해볼게. 여러분이 온라인 게임을 하고 있다고 상상해봐. 거기엔 길드가 있지. 각 길드엔 멤버들이 있고, 그들은 창고, 채팅, 전략 회의실 같은 공통 리소스에 접근할 수 있어. Linux에서 그룹도 같은 역할을 해. 그룹은 다음을 가능하게 해줘:

  1. 여러 사용자에 대한 파일 및 리소스 접근 관리를 간소화.
  2. 사용자를 역할이나 작업에 따라 팀으로 나누기.
  3. 시스템 관리자의 골칫거리를 최소화.

시스템이 사용자가 파일에 접근할 수 있는지 확인할 때, 세 가지 권한 수준을 검사해: 파일 소유자, 그룹, 그리고 나머지. 사용자가 해당 파일에 지정된 그룹에 속하고 그 그룹이 접근 권한을 가지고 있다면, 사용자는 행복하고 관리자도 만족해.


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. 실습 과제

이제 실제 관리자처럼 그룹을 생성하고 설정하는 것을 실습해보자.

시나리오:

  1. designers 그룹을 만들어라.
  2. 새 사용자 두 명: alicebob을 만들어라.
  3. 이 사용자들을 designers 그룹에 추가해라.
  4. 사용자들이 그룹에 정말 추가되었는지 확인해라.
  5. alicedesigners 그룹에서 삭제해라.

해결 방법:

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. 특징과 일반적인 실수

그룹 작업은 고양이들과 같아: 쉬워 보이지만, 잠깐 한눈을 팔면 혼란을 일으킬 수 있어:

  1. -aG 옵션. -a를 안 쓰면, 새 그룹을 제외한 모든 그룹에서 사용자를 실수로 제거하게 돼. 특히 사용자가 sudo 같은 시스템 그룹에 속해 있었다면, 상당히 "재밌는" 상황이 될 거야.

  2. 변경 사항은 다시 로그인해야 적용됨. 사용자가 새 그룹을 바로 못 본다고 놀라지 마! 새 권한을 얻으려면 시스템에서 로그아웃하고 다시 로그인해야 해.

  3. 이름 규칙 준수. 그룹 이름에 공백이나 특수 문자를 사용하지 마. awesome@group 같은 이름은 문제가 생길 수 있고, 관리자가 고생할 수도 있어.

  4. 권한 확인. 그룹이 생성되고 추가되었나? 멋지네, 하지만 파일에 그룹 권한이 없다면, 사용자들의 기대를 저버리게 되는 거야. 명심해: 권한은 따로 확인하고 설정해야 해.

실제 생활에서

실제 프로젝트에서 그룹 관리는 다음과 같이 사용돼:

  • 개발자, 테스터, 관리자 등 서버 리소스 접근 권한을 나누기 위해.
  • 팀을 위한 공용 작업 디렉토리 설정을 위해.
  • 데이터베이스, 설정 파일, 스크립트 및 물론 커피 머신(이건 Linux가 아직 못 도와주지만)에 대한 접근을 관리하기 위해.

이제 Linux에서 그룹을 생성하고 관리하는 방법을 알았으니, 시스템을 우아하고 효율적으로 관리할 준비가 된 거야.

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION