나는 다음과 같은 질문을했다 사용자 보충 그룹이 추가되었지만 '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
로그인 시 그룹 멤버십을 읽기 때문에 필요합니다. 이 모든 정보는 세션과 함께 저장되며 다시 읽혀지지 않습니다.