소개
이 실습에서는 리눅스 환경에서 사용자 그룹을 관리하는 데 필수적인 기술을 습득합니다. 새로운 그룹을 만드는 groupadd, 사용자의 그룹 멤버십을 수정하는 usermod, 시스템에서 그룹을 제거하는 groupdel 등 그룹 행정 관리를 위한 핵심 명령줄 유틸리티를 직접 사용해 보게 됩니다.
실습은 새로운 그룹을 생성하는 것으로 시작하여 실제적인 워크플로우를 따릅니다. 그런 다음 기존 사용자를 이 그룹에 추가하고, grep 및 groups와 같은 확인 명령어를 사용하여 변경 사항을 검증합니다. 마지막으로 그룹을 삭제하고 삭제 여부를 확인하는 연습을 통해 그룹 관리의 전체 수명 주기를 경험하게 됩니다.
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
이로써 labex가 research 그룹의 구성원이 되었음을 확인했습니다.
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 명령어를 사용하여 기존 사용자를 보조 그룹에 추가하는 방법과 grep 및 groups와 같은 도구를 사용하여 그룹 멤버십을 확인하는 방법을 배웠습니다. 마지막으로 groupdel 명령어를 사용하여 시스템에서 그룹을 제거하고 삭제 여부를 확인하는 연습을 통해 핵심적인 그룹 행정 관리 작업을 완수했습니다.



