기술 가이드

Linux에서 사용자 그룹 확인하는 법

5 min read 시스템 관리 업데이트됨 19 Oct 2025
Linux에서 사용자 그룹 확인하는 법
Linux에서 사용자 그룹 확인하는 법

Linux 터미널에서 사용자 그룹을 확인하는 예시 화면

개요

Linux에서 그룹은 파일과 자원에 대한 접근 권한을 효율적으로 관리하는 단위입니다. 개별 사용자마다 권한을 주기보다 그룹에 권한을 설정하면 관리가 쉬워집니다. 새 사용자를 만들면 보통 사용자 이름과 동일한 기본(primary) 그룹이 자동으로 생성됩니다. 또한 보조(secondary) 그룹에 사용자를 추가해 추가 권한을 부여할 수 있습니다.

이 문서는 다음을 다룹니다:

  • 자주 쓰는 명령어와 예시
  • 각 방법의 장단점과 언제 실패하는지
  • 운영자와 감사자를 위한 체크리스트 및 SOP
  • 보안 강화 및 검증 방법

기본 개념 한 줄 정의

  • 그룹(group): 파일/디렉터리에 적용할 수 있는 권한 집합을 가진 사용자 집단.
  • 기본 그룹(primary group): 계정 생성 시 자동으로 지정되는 그룹.
  • 보조 그룹(secondary groups): 추가 권한을 위해 사용자가 속할 수 있는 다른 그룹들.

groups 명령으로 사용자 그룹 확인하기

groups는 GNU coreutils에 포함되며 대부분의 시스템에 기본 설치되어 있습니다. 사용법은 간단합니다.

groups [username]
  • 인자를 주지 않으면 현재 로그인한 사용자의 그룹을 출력합니다.
  • username을 지정하면 해당 사용자가 속한 모든 그룹을 출력합니다.

예:

groups

또는

groups linuxuser

출력 예시는 linuxuser가 기본 그룹 linuxuser와 몇 개의 보조 그룹에 속해 있음을 보여줍니다.

중요: groups는 이름 기반으로 결과를 출력합니다. 네트워크 인증(예: LDAP)이 설정된 환경에서도 시스템이 올바르게 구성되어 있다면 정상 동작합니다.

id 명령으로 상세 정보 확인하기

id는 사용자 ID(UID), 그룹 ID(GID), 그리고 사용자가 속한 그룹을 보여줍니다. 숫자 ID와 이름을 다른 옵션으로 확인할 수 있습니다.

id -G linuxuser      # 숫자 GID 목록
id -Gn linuxuser     # 그룹 이름 목록
id                   # 현재 사용자 UID/GID/그룹 출력
  • -G는 그룹의 숫자 ID를 출력합니다.
  • -n을 추가하면 숫자 대신 사람 읽기 좋은 이름을 출력합니다.

id는 사용자 계정의 완전한 아이덴티티를 빠르게 확인할 때 유용합니다.

/etc/group 파일 직접 확인하기

시스템의 로컬 그룹 정보는 /etc/group 파일에 저장됩니다. 각 줄은 다음 형식입니다:

group_name:password:group_id:user_list
  • group_name: 그룹 이름
  • password: 일반적으로 비어있거나 x로 표시됨
  • group_id: GID(숫자형)
  • user_list: 쉼표로 구분된 사용자 목록(보조 그룹 멤버)

파일 전체를 보려면:

cat /etc/group

그러나 파일이 길면 수동 검색이 어렵습니다. 특정 사용자를 찾으려면 grep을 사용하세요.

grep -w linuxuser /etc/group

위의 -w 옵션은 정확한 단어 매칭을 보장합니다.

etc/group 파일을 텍스트로 보는 예시 화면

grep으로 /etc/group에서 사용자 검색한 결과 화면

주의: 네트워크 기반 인증(LDAP/NIS 등)을 사용하는 시스템에서는 /etc/group만 확인해서는 완전한 결과를 얻지 못할 수 있습니다. 이 경우 다음 섹션의 getent를 사용하세요.

getent 명령으로 시스템 데이터베이스에서 조회하기

getent/etc/passwd, /etc/group 뿐 아니라 네트워크 인증을 통해 제공되는 데이터베이스에서 정보를 조회합니다. 따라서 LDAP/NIS 등과 함께 사용할 때 더 신뢰할 수 있습니다.

getent group

또는 특정 사용자 관련 그룹만 찾으려면:

getent group | grep -w linuxuser

이 방법은 중앙 인증 서버와 통합된 환경에서 로컬 파일과 원격 정보를 모두 포함해 정확한 결과를 제공합니다.

getent group 명령 출력 예시 화면

getent와 grep을 조합하여 결과를 필터링한 예시 화면

언제 어떤 방법을 써야 하나? — 선택 가이드

  • 로컬 단일 서버이고 단순 조회만 필요하면 groupsid가 빠릅니다.
  • 네트워크 인증(예: LDAP)을 사용하는 환경에서는 getent가 권장됩니다.
  • 시스템 수준 파일(/etc/group)을 직접 편집하거나 백업/점검하려면 해당 파일을 확인하세요.
  • 스크립트에서 자동화하려면 id -Gn user로 그룹 이름을 안전하게 얻어 파싱하기 쉽습니다.

중요: 어떤 명령은 캐시된 정보나 인증 지연으로 인해 즉시 최신 정보를 반영하지 못할 수 있습니다. 중앙 인증 서버 변경 후에는 캐시를 플러시하거나 충분한 시간을 주어 동기화 상태를 확인하세요.

대안 및 관련 명령어

  • 그룹에 사용자를 추가하려면 usermod -aG group user를 사용합니다. (관리자 권한 필요)
sudo usermod -aG sudo alice
  • 그룹 생성/삭제: groupadd, groupdel.
  • 계정과 그룹 관련 전체 정보를 얻으려면 getent passwd usernamegetent group groupname을 조합합니다.

실패 사례와 대처법

  • LDAP/NIS 환경에서 결과가 보이지 않을 때: getent가 제대로 동작하는지 확인하고, NSS 설정(/etc/nsswitch.conf)에서 group 항목이 올바르게 구성되었는지 점검하세요.
  • 캐시 문제: SSSD나 nscd 같은 서비스가 있다면 해당 서비스를 재시작하거나 캐시를 플러시하세요.
  • 권한 문제로 /etc/group를 읽지 못할 때: 루트 권한으로 확인하세요.

운영자(관리자)/감사자 체크리스트

관리자 체크리스트:

  • 사용자의 기본 그룹이 계정 생성 정책과 일치하는지 확인
  • 중요 그룹(sudo, admin 등)의 멤버십을 정기적으로 검토
  • 중앙 인증과 로컬 파일 간 불일치 여부 점검
  • 변경 로그(누가 언제 그룹을 변경했는지)를 기록

감사자 체크리스트:

  • 보안 그룹의 멤버가 최소 권한 원칙을 따르는지 확인
  • 그룹 기반 권한 부여의 주기적 검토 일정 수립
  • 의심스러운 권한 상승 이벤트 검사

표준 운영 절차(SOP): 사용자 그룹 확인

  1. 목표 사용자 확인: 어떤 사용자에 대해 검증할지 결정합니다.
  2. 로컬 확인: id username 또는 groups username 실행.
  3. 중앙 인증 확인: getent group | grep -w username 실행.
  4. /etc/group 파일 검토(필요 시): grep -w username /etc/group.
  5. 차이점 기록: 로컬 vs 중앙의 불일치가 있으면 로그와 함께 기록.
  6. 문제 해결: NSS 설정, SSSD/nscd 상태, LDAP 서버 연결 상태 확인.
  7. 보고: 변경 또는 이슈가 있으면 티켓 발행.

검증 및 테스트 케이스

  • TC1: 로컬 사용자에 대해 groups가 기본 그룹과 보조 그룹을 올바르게 반환하는지 확인.
  • TC2: LDAP 계정을 가진 사용자에 대해 getent group이 중앙 그룹 멤버십을 반환하는지 확인.
  • TC3: id -Gn user 결과가 스크립트 파싱 규칙에 부합하는지 검증.

각 테스트는 정상/오류 케이스(예: 사용자 없음, 네트워크 실패)를 포함해야 합니다.

보안 강화 권장사항

  • 중요한 그룹(예: sudo, wheel)의 멤버십을 최소로 유지하세요.
  • 그룹 변경은 중앙 로그(예: syslog, SIEM)에 기록되도록 설정하세요.
  • LDAP 등 중앙 인증을 사용할 때는 전송 보안(LDAPS, StartTLS)을 적용하세요.
  • 자동화된 스크립트는 최소 권한으로 실행하고 변경 작업 시 다단계 검증을 추가하세요.

마이그레이션/호환성 팁

  • 로컬 /etc 방식에서 LDAP로 이전할 때는 먼저 NSS와 PAM 설정이 올바른지 테스트하세요.
  • 혼합 환경에서는 getent로 전체 환경을 조회해 불일치 항목을 찾아야 합니다.

간단한 용어집

  • UID: 사용자 식별자(숫자).
  • GID: 그룹 식별자(숫자).
  • NSS: Name Service Switch, 시스템이 사용자/그룹 정보를 어디서 조회할지 결정.

요약

  • groups, id, /etc/group, getent는 각기 장점이 있습니다. 환경(로컬 vs 중앙 인증)에 따라 적절한 도구를 사용하세요.
  • 운영자는 정기적인 멤버십 검토와 변경 로그를 유지해야 합니다.
  • 문제 발생 시 NSS 설정, 캐시 서비스(SSSD/nscd), 네트워크 인증 상태를 우선 점검하세요.

중요: 사용자 및 그룹 정보를 변경할 때는 변경 전후의 상태를 기록하고, 권한 상승이 발생하지 않도록 주의하세요.

공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

VMware Workstation 17 Player 업그레이드 및 설정 가이드
가상화

VMware Workstation 17 Player 업그레이드 및 설정 가이드

Windows 오류 126 해결 방법 — 전체 가이드
문제해결

Windows 오류 126 해결 방법 — 전체 가이드

샤오미 서비스 센터 온라인 예약 인도 가이드
모바일 가이드

샤오미 서비스 센터 온라인 예약 인도 가이드

키로거 완전 가이드: 탐지·제거·보안
보안

키로거 완전 가이드: 탐지·제거·보안

Windows 11 외장 하드 Parameter is Incorrect 오류 해결
Windows 문제

Windows 11 외장 하드 Parameter is Incorrect 오류 해결

포맷 없이 디스크 포맷 오류 해결하기
데이터 복구

포맷 없이 디스크 포맷 오류 해결하기