세션에서 "로그아웃"하면 새로 추가된 보조 그룹이 활성화되는 이유는 무엇입니까? [복사]

세션에서 "로그아웃"하면 새로 추가된 보조 그룹이 활성화되는 이유는 무엇입니까? [복사]

나는 다음과 같은 질문을했다 사용자 보충 그룹이 추가되었지만 'groups(1)'에 변경 사항이 표시되지 않습니다.오늘 일찍. 이제 이 답변이 왜 작동하는지 알고 싶습니다. 달리고 난 후

adduser user group

사용자로그아웃해야 합니다(창 관리자가 없는 상황에서 이것이 무엇을 의미하는지조차 모르겠습니다). 또는 그 이유는 무엇입니까?새 그룹(1)전화해야 하나요?

답변1

맨페이지를 보면,자격증adduser하위 프로세스가 실시간 방식으로 변경 사항을 즉시 반영 하지 않는 이유를 이해하게 될 것입니다 .

발췌

fork(2)에 의해 생성된 하위 프로세스는 상위 프로세스의 사용자 및 그룹 ID 복사본을 상속합니다. execve(2) 동안 프로세스의 실제 사용자 및 그룹 ID와 보충 그룹 ID는 execve(2)에 설명된 대로 변경될 수 있습니다.

그렇다면 이것은 무엇을 의미합니까?

로그오프하면 모든 후속 프로세스가 생성되는 상위 프로세스가 종료됩니다. 데스크탑 등의 모든 것 이 기본 프로세스에는 /etc/passwd& 를 읽어 채워지 는 그룹 정보가 포함되어 있습니다 /etc/group.

환경에서 그룹 정보를 얻는 방법에 역할을 하는 또 다른 파일은 /etc/nsswitch.conf다음과 같은 줄을 포함합니다.

passwd:     files
shadow:     files
group:      files

이는 방금 언급한 파일에서 비밀번호, 그룹 등에 대한 정보만 읽도록 시스템에 지시합니다.

이러한 행은 이 정보를 얻기 위해 다른 소스(예: NIS, LDAP 등)를 사용하도록 시스템에 쉽게 지시할 수 있습니다.

nsswitch.conf

매뉴얼 페이지를 보면 nsswitch.conf시스템이 사용자 이름, 그룹 및 비밀번호로 구성된 다양한 "데이터베이스"의 내용을 얻는 방법을 볼 수 있습니다.

발췌

FILES
       A service named SERVICE is implemented by a shared object library named 
       libnss_SERVICE.so.X that resides in /lib.

       /etc/nsswitch.conf       configuration file
       /lib/libnss_compat.so.X  implements `compat' source for glibc2
       /lib/libnss_db.so.X      implements `db' source for glibc2
       /lib/libnss_dns.so.X     implements `dns' source for glibc2
       /lib/libnss_files.so.X   implements `files' source for glibc2
       /lib/libnss_hesiod.so.X  implements `hesiod' source for glibc2
       /lib/libnss_nis.so.X     implements `nis' source for glibc2
       /lib/libnss_nisplus.so.2 implements `nisplus' source for glibc 2.1

NOTES
       Within each process that uses nsswitch.conf, the entire file is read only
       once; if the file is later changed, the process will continue using the 
       old  configuration.

이 주석을 보면 이 파일과 비슷한 상황이 반영되어 nsswitch.conf실시간으로 변경할 수 없다는 의미입니다.

답변2

로그인 시 그룹 멤버십을 읽기 때문에 필요합니다. 이 모든 정보는 세션과 함께 저장되며 다시 읽혀지지 않습니다.

관련 정보