Linux 에서 사용자가 그룹에 속하는지 확인하는 방법

LinuxBeginner
지금 연습하기

소개

이 랩에서는 Linux 에서 사용자가 특정 그룹에 속하는지 확인하는 방법을 배우게 됩니다. 사용자 그룹 멤버십을 이해하는 것은 Linux 시스템에서 권한 및 접근 제어를 관리하는 데 필수적입니다.

사용자의 그룹을 나열하는 groups 명령 사용, 그룹 정보를 담고 있는 /etc/group 파일 검토, 사용자 및 그룹 ID 를 표시하는 id 명령 활용 등 세 가지 다른 방법을 통해 그룹 멤버십을 확인할 것입니다. 이 랩을 마치면 사용자의 그룹 소속을 능숙하게 파악할 수 있게 됩니다.

groups 명령어로 사용자 그룹 목록 확인

이 단계에서는 groups 명령을 사용하여 사용자가 속한 그룹을 나열하는 방법을 살펴보겠습니다. 사용자 그룹은 Linux 에서 권한 및 파일과 리소스에 대한 접근을 관리하는 데 사용되므로, 이를 이해하는 것은 기본입니다.

groups 명령은 주어진 각 사용자 이름에 대한 기본 및 보조 그룹의 이름을 출력하는 간단한 유틸리티입니다. 사용자 이름이 주어지지 않으면 현재 프로세스의 그룹을 출력합니다.

현재 사용자 (labex) 가 어떤 그룹에 속하는지 알아보겠습니다.

아직 열려 있지 않다면 터미널을 엽니다. 데스크탑 왼쪽의 Xfce 터미널 아이콘을 클릭하여 터미널을 열 수 있습니다.

이제 다음 명령을 입력하고 Enter 키를 누르세요:

groups

다음과 유사한 출력을 볼 수 있습니다:

labex sudo ssl-cert public

이 출력은 labex 사용자가 속한 그룹을 보여줍니다. 이 예에서 labex 사용자는 labex, sudo, ssl-cert, 및 public 그룹에 속해 있습니다.

  • 나열된 첫 번째 그룹은 일반적으로 사용자의 기본 그룹입니다.
  • 후속 그룹은 보조 그룹입니다.

sudo 그룹의 멤버인 것은 중요합니다. 왜냐하면 이전 랩에서 htop을 설치하기 위해 사용했던 것처럼, sudo 명령을 사용하여 슈퍼유저 권한으로 명령을 실행할 수 있기 때문입니다.

사용자 이름을 알고 있다면 groups 명령을 사용하여 다른 사용자의 그룹을 확인할 수도 있습니다. 예를 들어, root 사용자의 그룹을 확인하려면 다음과 같이 입력합니다:

groups root

출력은 root 사용자가 속한 그룹을 보여주며, 일반적으로 root 그룹만 표시됩니다:

root

사용자가 어떤 그룹에 속하는지 이해하면 시스템에서 어떤 권한을 가지고 있는지 파악하는 데 도움이 됩니다.

다음 단계로 진행하여 명령 실행을 확인하려면 계속하기를 클릭하세요.

/etc/group 파일에서 그룹 멤버십 확인

이 단계에서는 Linux 에서 사용자 그룹에 대한 정보를 저장하는 중요한 시스템 파일인 /etc/group 파일을 살펴보겠습니다. groups 명령은 사용자의 그룹 목록을 빠르게 제공하지만, /etc/group을 검토하면 시스템 전체에서 어떤 사용자가 어떤 그룹에 속하는지 알 수 있습니다.

/etc/group 파일은 각 그룹에 대해 한 줄씩 포함합니다. 각 줄은 콜론으로 구분된 네 개의 필드를 갖습니다:

  1. 그룹 이름 (Group Name): 그룹의 이름입니다.
  2. 비밀번호 필드 (Password Field): 일반적으로 'x'로, 그룹 비밀번호가 사용되지 않음 (또는 다른 곳에 저장됨) 을 나타냅니다.
  3. 그룹 ID (GID): 그룹에 대한 고유한 숫자 식별자입니다.
  4. 멤버 (Members): 이 그룹의 멤버인 사용자의 쉼표로 구분된 목록입니다. 기본 그룹이 이 그룹인 사용자는 여기에 나열되지 않음에 유의하세요.

cat 명령을 사용하여 이 파일의 내용을 표시할 수 있습니다. cat은 파일을 순차적으로 읽어 표준 출력으로 쓰는 표준 Unix 유틸리티입니다.

터미널을 열고 다음 명령을 입력하여 /etc/group의 내용을 봅니다:

cat /etc/group

Enter 키를 누르세요.

많은 출력을 볼 수 있으며, 각 줄은 시스템의 다른 그룹을 나타냅니다. 네 번째 필드 (멤버 목록) 에 labex 사용자 이름이 포함된 줄을 찾으세요.

예를 들어, 다음과 유사한 줄을 볼 수 있습니다 (정확한 출력은 다를 수 있습니다):

...
sudo:x:27:labex
...
ssl-cert:x:121:labex
...
public:x:5002:labex
...

이 예시 줄에서:

  • sudo 그룹은 labex를 멤버로 가지고 있습니다.
  • ssl-cert 그룹은 labex를 멤버로 가지고 있습니다.
  • public 그룹은 labex를 멤버로 가지고 있습니다.

labex 그룹 자체가 labex를 기본 그룹으로 가지고 있다면 네 번째 필드에 labex를 멤버로 나열하지 않을 수 있습니다.

/etc/group을 보면 groups 명령의 간단한 출력보다 그룹 구성을 더 자세히 볼 수 있습니다. 시스템 관리자가 사용자 권한을 이해하는 데 유용한 파일입니다.

다음 단계로 이동하려면 계속하기를 클릭하세요.

id 명령어로 사용자 그룹 확인

이 단계에서는 첫 번째 랩에서 사용했던 id 명령을 다시 살펴보겠습니다. id 명령은 사용자 ID (UID), 기본 그룹 ID (GID), 그리고 사용자가 속한 모든 그룹을 포함하여 사용자의 신원에 대한 포괄적인 보기를 제공합니다. 이 명령은 그룹 멤버십을 확인하는 빠른 방법입니다.

이미 id를 사용하여 UID 와 GID 를 확인했습니다. 이제 출력의 groups 부분에 집중하고, groups 명령과 /etc/group 파일에서 본 내용과 비교해 보겠습니다.

터미널을 열고 다음 명령을 입력합니다:

id

Enter 키를 누르세요.

다음과 유사한 출력을 볼 수 있습니다:

uid=XXXX(labex) gid=XXXX(labex) groups=XXXX(labex),XX(sudo),XXX(ssl-cert),XXXX(public)

(참고: XXXXXX는 실제 숫자 ID 의 자리 표시자이며, 약간 다를 수 있지만 그룹 이름은 일관되어야 합니다).

출력을 다시 분석하여 groups 섹션에 집중해 보겠습니다:

  • uid=XXXX(labex): 사용자 ID 와 사용자 이름입니다.
  • gid=XXXX(labex): 기본 그룹 ID 와 기본 그룹 이름입니다.
  • groups=XXXX(labex),XX(sudo),XXX(ssl-cert),XXXX(public): 기본 그룹과 보조 그룹을 포함하여 속한 모든 그룹의 쉼표로 구분된 목록입니다.

id 명령 출력의 groups= 섹션에 있는 그룹 이름 목록을 1 단계에서 groups 명령으로 얻은 출력과 비교해 보세요. 동일한 그룹 이름 목록을 볼 수 있습니다.

id 명령은 스크립팅 및 시스템 관리 작업에 유용할 수 있는 숫자 ID (UID 및 GID) 도 제공하므로, groups 명령보다 선호되는 경우가 많습니다. 한 줄의 출력으로 사용자의 신원과 그룹 멤버십에 대한 전체 그림을 제공합니다.

이제 Linux 에서 사용자 그룹 멤버십을 확인하는 세 가지 다른 방법을 배웠습니다: groups 명령 사용, /etc/group 파일 검토, 그리고 id 명령 사용. 각 방법은 약간 다른 정보를 제공하며, 서로 다른 컨텍스트에서 유용합니다.

이 단계와 랩을 완료하려면 계속하기를 클릭하세요.

요약

이 랩에서는 Linux 에서 사용자가 그룹에 속하는지 확인하는 세 가지 다른 방법을 배웠습니다. 먼저, groups 명령을 사용하여 지정된 사용자 또는 현재 사용자의 기본 및 보조 그룹을 빠르게 나열하여 그룹 멤버십이 권한 및 접근을 결정한다는 것을 이해했습니다.

그런 다음, 상세한 그룹 정보를 담고 있는 기본 시스템 파일인 /etc/group 파일을 탐색하고, 그룹 멤버십을 직접 확인하기 위해 해당 구조를 해석하는 방법을 배웠습니다. 마지막으로, 사용자 ID, 기본 그룹 ID, 모든 보조 그룹 ID 를 포함한 포괄적인 사용자 및 그룹 정보를 제공하는 다용도 유틸리티인 id 명령을 사용하여 그룹 소속을 확인하는 또 다른 방법을 제시했습니다.