groupadd, usermod, groupdel 을 이용한 리눅스 그룹 관리

CompTIABeginner
지금 연습하기

소개

이 실습에서는 리눅스 환경에서 사용자 그룹을 관리하는 데 필수적인 기술을 습득합니다. 새로운 그룹을 만드는 groupadd, 사용자의 그룹 멤버십을 수정하는 usermod, 시스템에서 그룹을 제거하는 groupdel 등 그룹 행정 관리를 위한 핵심 명령줄 유틸리티를 직접 사용해 보게 됩니다.

실습은 새로운 그룹을 생성하는 것으로 시작하여 실제적인 워크플로우를 따릅니다. 그런 다음 기존 사용자를 이 그룹에 추가하고, grepgroups와 같은 확인 명령어를 사용하여 변경 사항을 검증합니다. 마지막으로 그룹을 삭제하고 삭제 여부를 확인하는 연습을 통해 그룹 관리의 전체 수명 주기를 경험하게 됩니다.

이 과정은 단계별 안내를 통해 학습과 실습을 돕는 가이드 실습 (Guided Lab) 입니다. 각 단계를 주의 깊게 따라가며 직접 경험을 쌓으시기 바랍니다. 통계에 따르면 이 실습은 초급 수준이며, 98%의 완료율과 학습자들로부터 100%의 긍정적인 평가를 받았습니다.

groupadd 로 새로운 리눅스 그룹 생성하기

이 단계에서는 리눅스 시스템에서 새로운 사용자 그룹을 생성하는 방법을 배웁니다. 리눅스에서 그룹은 여러 사용자의 권한을 동시에 관리하기 위한 매우 중요한 메커니즘입니다. 각 사용자에게 개별적으로 권한을 부여하는 대신 그룹에 권한을 할당하면, 해당 그룹의 구성원인 모든 사용자가 그 권한을 상속받게 됩니다. 이는 특히 사용자가 많은 환경에서 시스템 관리를 단순화해 줍니다.

이번 연습에서는 여러분이 회사의 시스템 관리자이며, 새로 합류할 연구 개발 (R&D) 팀을 위한 새로운 그룹을 만들어야 한다고 가정해 보겠습니다. 이를 위해 groupadd 명령어를 사용합니다. 이 명령어는 관리자 권한이 필요하므로 sudo를 함께 사용해야 합니다.

먼저 터미널을 엽니다. 기본 디렉토리인 ~/project에서 시작될 것입니다. 이제 research라는 이름의 새로운 그룹을 만들어 보겠습니다.

다음 명령어를 실행하세요:

sudo groupadd research

sudo 명령어는 이 관리 작업을 수행하기 위해 권한을 격상시킵니다. groupadd는 그룹을 생성하는 명령어이며, research는 우리가 새 그룹을 위해 선택한 이름입니다.

명령어가 성공적으로 실행되면 아무런 출력도 나타나지 않습니다. 그룹이 제대로 생성되었는지 확인하려면 /etc/group 파일을 확인하면 됩니다. 이 파일은 시스템의 모든 그룹 정보를 저장합니다. grep 명령어를 사용하여 이 파일 내에서 방금 만든 그룹을 검색할 수 있습니다.

grep research /etc/group

출력 결과에서 research 그룹에 해당하는 새로운 줄을 볼 수 있습니다. 형식은 그룹이름:비밀번호자리표시:그룹ID:멤버입니다. 그룹 ID(GID) 는 시스템이 자동으로 할당하므로 아래 예시와 다를 수 있으며 이는 정상입니다.

research:x:5003:

이 출력은 이제 시스템에 research 그룹이 존재하며 사용자를 추가할 준비가 되었음을 확인해 줍니다.

usermod 로 보조 그룹에 사용자 추가하기

이 단계에서는 방금 생성한 research 그룹에 기존 사용자를 추가해 보겠습니다. 리눅스에서 각 사용자는 하나의 *기본 그룹 (primary group)*을 가지며, 여러 개의 *보조 그룹 (secondary groups 또는 supplementary groups)*에 속할 수 있습니다. 이를 통해 유연한 권한 관리가 가능해집니다. 이제 research 그룹이 준비되었으므로, 현재 사용자인 labex를 이 그룹의 보조 그룹으로 추가하겠습니다. 이렇게 하면 labex 사용자의 기본 그룹을 변경하지 않고도 research 그룹에 할당된 모든 권한을 부여할 수 있습니다.

사용자의 그룹 멤버십을 수정하려면 usermod 명령어를 사용합니다. 이는 사용자 계정 상세 정보를 변경하는 강력한 유틸리티입니다.

usermod 명령어에 -aG 옵션을 조합하여 사용하겠습니다:

  • -G: 새로운 보조 그룹 목록을 지정합니다.
  • -a: "추가 (append)"를 의미합니다. 매우 중요한 옵션입니다. 이 옵션은 사용자를 기존 그룹에서 제거하지 않고 지정된 그룹에 추가합니다. 만약 -a를 생략하면, 사용자는 명령어에 나열되지 않은 다른 모든 보조 그룹에서 제외됩니다.

터미널에서 다음 명령어를 실행하여 labex 사용자를 research 그룹에 추가하세요:

sudo usermod -aG research labex

이 명령어는 시스템 수준의 사용자 정보를 수정하므로 sudo 권한이 필요합니다. research는 추가할 그룹 이름이고, labex는 수정할 사용자 이름입니다. groupadd와 마찬가지로 성공적으로 실행되면 아무런 출력이 없습니다.

/etc/group 파일을 다시 확인하여 변경 사항을 즉시 검증할 수 있습니다.

grep research /etc/group

이제 research 그룹 행의 끝에 labex 사용자가 나열된 것을 볼 수 있습니다.

research:x:5003:labex

이로써 labexresearch 그룹의 구성원이 되었음을 확인했습니다.

grep 과 groups 로 그룹 및 사용자 멤버십 확인하기

이 단계에서는 사용자의 그룹 소속을 확인하는 더 효율적인 방법들을 배웁니다. 앞서 특정 그룹의 멤버를 보기 위해 /etc/group 파일에 grep을 사용해 보았지만, 특정 사용자가 속한 모든 그룹을 확인하는 더 직접적인 방법들이 있습니다. 이는 권한과 설정을 확인해야 하는 시스템 관리자에게 매우 흔한 작업입니다.

먼저 다시 한번 grep을 사용해 보되, 이번에는 labex 사용자가 멤버로 포함된 모든 보조 그룹을 찾아보겠습니다. /etc/group 파일에서 사용자 이름을 검색하면 labex가 멤버로 기재된 모든 그룹 항목을 볼 수 있습니다.

터미널에서 다음 명령어를 실행하세요:

grep labex /etc/group

출력 결과에는 "labex"라는 문자열이 포함된 /etc/group 파일의 모든 줄이 표시됩니다. 여기에는 우리가 추가한 research 그룹뿐만 아니라 다른 기본 보조 그룹들도 포함될 것입니다. 시스템 설정에 따라 출력되는 그룹의 수는 다를 수 있습니다.

sudo:x:27:labex
ssl-cert:x:121:labex
labex:x:5000:
public:x:5002:labex
research:x:5003:labex

이 방법도 유효하지만, 이 작업에 더 특화되고 사용자 친화적인 명령어는 groups입니다. 이 명령어는 특정 사용자가 속한 모든 그룹 (기본 및 보조 그룹 모두) 을 나열하도록 설계되었습니다.

labex 사용자가 속한 모든 그룹을 보려면 다음 명령어를 실행하세요:

groups labex

이 명령어는 사용자의 그룹 소속 정보를 한 줄로 깔끔하게 요약하여 보여줍니다.

labex : labex sudo ssl-cert public research

이 출력에서 콜론 (:) 앞의 이름 (labex) 은 조회 대상 사용자입니다. 콜론 뒤의 목록은 해당 사용자가 속한 모든 그룹을 나타냅니다. 목록의 첫 번째 그룹 (labex) 은 사용자의 기본 그룹입니다. 그 뒤에 이어지는 모든 그룹 (sudo, ssl-cert, public, research) 은 보조 그룹입니다. 이 명령어는 사용자의 그룹 멤버십 전체를 파악하는 가장 빠른 방법입니다.

groupdel 로 그룹 삭제 및 제거 확인하기

마지막 단계에서는 시스템에서 그룹을 제거하는 방법을 배웁니다. 이는 팀이 해체되거나 프로젝트가 완료되어 관련 그룹이 더 이상 필요하지 않을 때 수행하는 일반적인 관리 작업입니다. 그룹을 삭제할 때는 groupdel 명령어를 사용합니다.

그룹 생성과 마찬가지로 삭제 역시 sudo 권한이 필요한 관리자 작업입니다. 주의할 점은 기존 사용자의 기본 그룹은 삭제할 수 없다는 것입니다. 이전 그룹을 삭제하기 전에 해당 사용자의 기본 그룹을 먼저 변경해야 합니다. 하지만 research 그룹은 labex 사용자의 보조 그룹일 뿐이므로 문제없이 삭제할 수 있습니다.

터미널에서 다음 명령어를 실행하여 research 그룹을 삭제하세요:

sudo groupdel research

groupdel 명령어가 성공하면 아무런 출력도 나타나지 않습니다. 이 명령어는 시스템의 그룹 데이터베이스 (주로 /etc/group 파일) 에서 해당 그룹 항목을 제거합니다.

그룹이 성공적으로 제거되었는지 확인하기 위해, 이전에 사용했던 것과 동일한 grep 명령어를 사용하여 검색해 보겠습니다.

grep research /etc/group

이번에는 명령어를 실행해도 아무런 출력이 나오지 않아야 합니다. 즉시 다음 명령 프롬프트로 돌아올 것입니다. 이렇게 출력이 없다는 것이 바로 /etc/group 파일에서 research가 포함된 줄이 삭제되었으며, 따라서 해당 그룹이 더 이상 시스템에 존재하지 않음을 증명하는 확인 결과입니다.

요약

이 실습을 통해 리눅스 환경에서 사용자 그룹을 관리하는 기본 원리를 습득했습니다. 먼저 사용자를 조직화하고 권한 관리를 단순화하는 데 필수적인 sudo groupadd 명령어를 사용하여 research라는 새 그룹을 생성했습니다. 그룹이 성공적으로 생성되었는지 확인하기 위해 grep 명령어로 /etc/group 파일을 조사하여 새 그룹 항목이 올바르게 추가되었음을 검증했습니다.

또한 그룹 관리의 전체 수명 주기를 다루었습니다. usermod 명령어를 사용하여 기존 사용자를 보조 그룹에 추가하는 방법과 grepgroups와 같은 도구를 사용하여 그룹 멤버십을 확인하는 방법을 배웠습니다. 마지막으로 groupdel 명령어를 사용하여 시스템에서 그룹을 제거하고 삭제 여부를 확인하는 연습을 통해 핵심적인 그룹 행정 관리 작업을 완수했습니다.