/etc/group은 로컬 그룹 레코드를 저장합니다. 그룹 이름을 숫자 GID에 매핑하고 명시적인 구성원을 나열하여 여러 계정이 공유하는 접근 제어를 지원합니다.
사용자 관리 · 레슨 5
/etc/group
로컬 그룹 레코드가 이름을 GID에 매핑하고 보조 구성원을 나열하는 방법을 배웁니다.
로컬 그룹과 해석된 그룹 구분하기
이 파일은 가능한 그룹 출처 중 하나일 뿐입니다. NSS는 로컬 파일, 디렉터리 서비스 또는 구성된 다른 데이터베이스에서 그룹을 해석할 수 있습니다. 로컬 레코드는 다음 명령으로 표시합니다.
$ cat /etc/group
getent로 해석된 그룹 데이터베이스를 질의합니다.
$ getent group
$ getent group developers
그룹 목록은 내부 계정과 역할 이름을 노출할 수 있으므로 공유하기 전에 출력을 검토하세요.
NSS로 해석된 그룹 데이터베이스를 질의하는 명령은 무엇인가요?
네 필드 읽기
로컬 레코드에는 콜론으로 구분된 필드 네 개가 있습니다.
developers:x:1500:alice,bob
- 그룹 이름:
developers - 비밀번호 필드: 일반적으로
x,*또는 다른 자리 표시자. 보호된 그룹 비밀번호 데이터는/etc/gshadow에 저장될 수 있음 - GID: 숫자 그룹 신원. 여기서는
1500 - 구성원 목록: 쉼표로 구분된 명시적 구성원 이름. 여기서는
alice와bob
그룹 비밀번호는 일부 구성에서 newgrp 같은 도구가 사용하는 레거시 기능입니다. sudo 권한을 부여하는 일반적인 방법이 아니며 필드를 수동으로 편집하여 도입해서는 안 됩니다.
developers:x:1500:alice,bob에서 GID가 들어 있는 필드는 무엇인가요?
로컬 그룹 레코드에서 명시적인 구성원 이름은 어떻게 표현되나요?
기본 그룹 멤버십 고려하기
/etc/group의 구성원 목록에는 일반적으로 passwd 레코드에서 해당 GID를 기본 그룹으로 지정한 사용자를 다시 적지 않습니다. 따라서 필드 4에 이름이 없어도 사용자가 구성원일 수 있습니다.
예를 들어 Alice의 passwd 레코드가 기본 GID 1500을 사용하면 로컬 그룹 레코드의 구성원 필드가 비어 있어도 developers에 속합니다.
developers:x:1500:
따라서 필드 4만 분석하면 불완전한 멤버십 결과가 나옵니다.
Alice의 passwd 레코드는 GID 1500을 기본 GID로 사용하지만 그룹 1500의 필드 4에는 이름이 없습니다. Alice는 그 그룹의 구성원인가요?
사용자의 그룹 확인하기
해석된 계정 보기에는 id USER나 groups USER를 사용합니다.
$ id alice
$ groups alice
현재 프로세스에 대해서는 일반 id가 실제 자격 증명에 있는 그룹을 보고합니다. 새로 구성된 보조 멤버십은 보통 이미 실행 중인 로그인 세션에 나타나지 않습니다. 새 인증 세션을 시작하거나 적절한 경우 의도적으로 구성한 newgrp 같은 메커니즘을 사용하세요.
현재 프로세스의 UID, 기본 GID, 보조 그룹을 보고하는 명령은 무엇인가요?
로컬 그룹 안전하게 변경하기
일반 편집기로 레코드를 바꾸지 말고 groupadd, groupmod, groupdel, gpasswd, usermod 같은 도구를 사용하세요. 특히 다음 차이에 주의합니다.
usermod -aG GROUP USER: 보조 그룹 멤버십 추가usermod -G ...:-a를 생략하면 보조 그룹 목록 교체
로컬 데이터베이스를 수동으로 복구해야 한다면 잠금을 위해 vigr, 검증을 위해 grpck를 사용합니다. 원격 신원 변경 전에는 복구 경로를 유지하세요.
통제된 환경에서 로컬 그룹 관리를 연습하려면 다음 실습을 진행해 보세요.
- useradd, usermod, userdel로 Linux 사용자 계정 관리하기 - 새 계정 생성과 보안 설정부터 수정 및 삭제까지 사용자 관리 수명 주기를 연습합니다.
- groupadd, usermod, groupdel로 Linux 그룹 관리하기 -
groupadd,usermod,groupdel을 포함한 핵심 그룹 관리 명령줄 도구를 연습합니다. - 새 사용자와 그룹 추가하기 - 새 사용자 계정을 만들고 사용자 지정 그룹을 설정하며 멤버십을 관리합니다.
레슨 완료
/etc/group 완료
이제 로컬 그룹 레코드를 해석하고 완전한 멤버십을 더 정확히 확인할 수 있습니다.
getent group으로 구성된 그룹 출처를 질의할 수 있습니다.콜론으로 구분된 그룹 필드 네 개를 읽을 수 있습니다.
숫자 GID와 명시적인 구성원 목록을 찾을 수 있습니다.
passwd 레코드의 기본 멤버십을 포함할 수 있습니다.
변경된 멤버십에 의존하기 전에 활성 자격 증명을 확인할 수 있습니다.