내가 이해한 바로는 Unix 시스템의 사용자는 여러 그룹에 속할 수 있으며 해당 그룹 중 하나가 해당 사용자의 기본 그룹이 됩니다. 다른 그룹은 보충 그룹이 됩니다. 이들 모두 사용자/그룹 인프라/etc/group
문서화 촉진 /etc/passwd
.
사용자의 그룹 권한은 이제 활성 그룹에 의해 전적으로 결정되며 newgrp
명령을 통해 변경할 수 있습니다. 로그인 시 활성 그룹은 /etc/passwd
파일에 정의된 기본 그룹입니다. 그렇다면 사용자에게 여러 개의 보조 그룹을 허용하면서도 디자이너가 단일 활성 그룹 개념을 선택한 근본적인 이유는 무엇일까요? 모든 그룹이 동시에 활동하면 어떤 문제가 발생합니까?
답변1
답변2
한 가지 이유: 파일이 생성될 때 파일은 하나의 그룹에만 속할 수 있으며, 파일이 생성될 때 그룹이 지정되지 않습니다. 따라서 단일 활성 그룹이라는 개념이 있어야 합니다.
답변3
Q1: 그러면 질문은 디자이너가 사용자에게 여러 개의 보조 그룹을 가질 수 있음에도 불구하고 단일 활성 그룹 개념을 선택한 근본적인 이유가 무엇입니까?
Unix에서 그룹의 원래 주요 목적은 디스크의 파일에 대한 공유 액세스를 허용하는 것이었습니다. 이 사용 사례에서는 일반적으로 대부분의 경우 파일에 액세스하고 가끔 사용자 그룹 간에 공유되는 파일에 액세스합니다.
그래서 나는 그것이 처음부터 이 모델을 중심으로 설계되었다고 생각합니다. 모델은 시간이 지남에 따라 수정되었지만 일반적인 접근 방식은 동일하게 유지됩니다. 즉, 기본 그룹(에 지정됨)에 속해 있고 구성원이 될 수 있는 /etc/passwd
보조 그룹(에 지정됨)이 있습니다 ./etc/group
일부 초기 구현(예: Sun/Solaris)에는 NIS+를 사용할 때 사용자가 구성원이 될 수 있는 총 그룹 수가 약 15개로 제한되었습니다.
Q2: 모든 그룹이 동시에 활성화되면 어떤 문제가 발생하나요?
POSIX에는 이 디자인으로 API를 노출하는 많은 시스템 호출이 있으므로 이를 수정하는 것은 현재 주변에 구축된 소프트웨어의 양을 고려할 때 어려운 작업이 될 수 있습니다. 그리고 그것을 바꿀 이유가 전혀 없습니다.
다른 큰 제한 사항은 파일 시스템과 프로세스 공간입니다. 파일 시스템의 경우 일반적으로 특정 파일이나 디렉터리를 "그룹화"할 GID에 대한 단일 값만 포함됩니다. 프로세스를 실행하는 경우에도 마찬가지입니다. 일반적으로 그룹과 연관되어 있습니다.
그러나 시간이 지남에 따라 이 전체적인 접근 방식은 Active Directory 및 기타 자격 증명 기술과의 통합에 적응할 수 있게 되었기 때문에 처음 배울 때 약간 이상하더라도 매우 좋은 구현입니다.