/proc/pid/status의 보충 그룹은 어디에서 왔으며 항상 쉘에서 상속됩니까?

/proc/pid/status의 보충 그룹은 어디에서 왔으며 항상 쉘에서 상속됩니까?

/proc/pid/status에서 우리는 pid에 대한 모든 보충 그룹을 볼 수 있습니다(내 이해는 그것이 대화형 쉘에서 분기되었거나 프로세스가 getgroups(2)를 수행했다고 가정합니다)

이러한 그룹을 프로세스에 제공하는 방법을 알고 싶습니다. 일반적으로 상위 쉘에서 상속됩니까? 부모 쉘이 어떤 시점에서 getgroup을 실행했다고 가정해야 합니까(또는 getgroup을 실행한 로그인 쉘에서 값을 상속받았습니까?)

답변1

당신의 이해가 정확합니다. 그룹은 항상 상위 프로세스에서 상속됩니다(init는 추가 그룹 없이 시작됩니다). 이를 변경하는 유일한 방법은 컬렉션 그룹을 이용하는 것입니다. 이는 su, sshd 또는 사용자에 대한 로그인을 수행하는 권한 있는 프로세스를 통해 수행됩니다. 사용자의 쉘이 실행 중일 때 그룹이 설정되었습니다.

관련 정보