Linux에서는 사용자 및 그룹 권한을 통해 시스템의 특정 부분에 대한 권한 및 액세스를 구성합니다.

사용자 그룹에 대해 자세히 알아보려고 하는데 /etc/group 파일의 내용을 이해해야 할 수도 있습니다. 또는 시스템 관리에 대해 자세히 알아보고 Linux에서 권한 구성 및 그룹 관리에 대한 모든 것을 배우고 싶을 수도 있습니다.

이유가 무엇이든 Linux 사용자로서 /etc/group 파일에 대해 자세히 알면 도움이 될 수 있습니다.

/etc/group 파일 무엇인가요?

사용자 그룹은 Linux에서 권한이 작동하는 방식을 이해하는 데 필수적입니다. /etc 디렉터리에 있는 그룹 파일은 Linux 머신에 구성된 로컬 그룹에 대한 정보가 포함된 시스템 파일입니다.

사용자 그룹에 대한 정보가 들어 있는 시스템 데이터베이스로, /etc/passwd 파일에 사용자 이름이 저장되는 방식과 유사합니다. 컴퓨터의 각 사용자에 대한 암호화된 비밀번호가 포함된 /etc/shadow 파일도 있습니다.

/etc/group 파일의 중요성을 이해하려면 먼저 Linux 기반 시스템에서 사용자 그룹의 역할에 대해 자세히 알아볼 필요가 있습니다.

Linux에 대한 권한은 사용자와 그룹에 할당됩니다. 이러한 권한을 통해 관리자는 사용자 또는 그룹이 액세스할 수 있거나 액세스할 수 없는 소프트웨어 또는 하드웨어의 일부와 같은 사용자 액세스 제어를 설정할 수 있습니다. 예를 들어 휠 그룹의 사용자는 sudo 또는 su 명령을 사용할 수 있는 권한이 있습니다.

마찬가지로 사용자가 audio 그룹에 속하지 않은 경우 오디오 또는 사운드와 상호 작용할 수 없습니다.

cat과 같은 Linux의 파일 보기 유틸리티를 사용하여 /etc/group 파일의 내용을 볼 수 있습니다:

 sudo cat /etc/group 

언뜻 보기에는 화면에 무엇이 표시되는지 이해하기 어려울 것입니다. 조금 더 집중하면 항목이 패턴을 따른다는 것을 알 수 있습니다. /etc/group 파일의 각 항목은 콜론 ( : )로 구분된 4개의 값의 조합입니다. 이 값은 무엇인가요?

/etc/group의 내용 이해

첫 번째 열(첫 번째 콜론 앞의 값)은 그룹 이름입니다. 파일 이름이 /etc/group 이므로 이 정보를 가장 먼저 넣는 것이 좋습니다. 그룹 파일의 각 항목을 구문 분석하여 첫 번째 열만 표시하면 Linux의 모든 사용자 그룹을 나열할 수 있습니다.

 cdrom:x:24:username 

더 많은 권한이 있는 그룹의 경우 두 번째 항목은 암호화된 비밀번호가 됩니다. 파일 버전에 있는 대부분의 비밀번호 값에는 십자 표시를 나타내는 ‘ x ‘가 있으며, 이는 해당 그룹에 설정된 비밀번호가 없음을 의미합니다.

이 글도 확인해 보세요:  QEMU로 우분투 가상 머신을 설치하는 방법

두 번째 콜론 뒤의 숫자는 그룹 ID입니다. 사용자와 마찬가지로 Linux의 각 그룹에는 그룹 ID 또는 줄여서 GID라고도 하는 고유 ID가 있습니다.

마지막으로 마지막 값에는 그룹에 속한 사용자가 포함됩니다. 일반 그룹에는 쉼표 ( , )로 구분된 몇 명의 사용자가 나열되는 반면, 다른 그룹에는 한 명의 사용자만 나열됩니다. 일부 그룹은 사용자가 하나도 나열되지 않을 수도 있습니다.

사용자와 그룹으로 Linux 관리가 쉬워집니다

사용자와 그룹은 모두 Linux 시스템 관리에서 큰 역할을 합니다. 관리자가 권한을 할당하고 책임을 신중하게 위임할 수 있도록 하여 보안을 유지하는 Linux 시스템의 두 가지 기둥으로 간주하세요.

Linux가 Windows보다 더 안전한 비결은 권한이 작동하는 방식에 있습니다. 모든 사용자가 시스템에 중요한 파일에 액세스할 수 있는 것은 아니며, 마찬가지로 모든 프로세스가 기본 소프트웨어 및 하드웨어에 액세스할 수 있는 것도 아닙니다.

Linux의 대부분의 프로세스는 커널 공간에서 실행되는 모든 프로세스가 사용할 수 있는 제어 수준으로 인해 무엇이든 가능한 커널 공간과 달리 제한된 권한이 있는 환경인 사용자 공간에서 작동합니다.

By 김민수

안드로이드, 서버 개발을 시작으로 여러 분야를 넘나들고 있는 풀스택(Full-stack) 개발자입니다. 오픈소스 기술과 혁신에 큰 관심을 가지고 있고, 보다 많은 사람이 기술을 통해 꿈꾸던 일을 실현하도록 돕기를 희망하고 있습니다.