Linux에서 다시 로그인하지 않고 사용자 / 그룹 속성을 업데이트하는 방법이 있습니까?


24

/ etc / group을 편집하고 소속되지 않은 그룹에 사용자를 추가하면 새 세션을 시작하지 않으면 사용자는 새로 획득 한 권한을 사용할 수 없습니다.

진행중인 세션에서 사용자 / 그룹 속성을 새로 고치는 명령이 있습니까?


1
를 사용하는 대신 수동으로 파일을 편집하는 이유가 useradd -G groupname username있습니까?
Bobby

4
@Bobby : 별 차이가 없습니다.
niXar 2016 년

이 답변을 볼 수 있습니다 .
Pablo A

답변:


16

커널 수준에서 그룹 멤버쉽은 각 프로세스의 속성입니다. 적절한 의도 (잘못하지 않은 경우 CAP_SETGID), 즉 모든 의도와 목적에 대한 루트 권한이 없으면 프로세스가 새 그룹에 속할 수 없습니다.

사용자는 커널 수준에서 개체로 존재하지 않습니다. 프로세스 (및 파일) 만 수행합니다. 프로세스에는 uid (효과적이며 다른 것)와 그룹 ID 목록이 있습니다.

사용자를 그룹에 추가 할 때 커널은 그 의미를 모릅니다. 다음 번에 / bin / login 또는 / usr / bin / newgrp가 실행될 때 해당 사용자 ID로 프로세스가 실행되면 목록에 새 그룹 ID가 있음을 간접적으로 만 알 수 있습니다.

따라서 Gnome 또는 KDE 세션을 말하고 있다면 질문에 대답하려면 실제로 다시 시작해야합니다. 또는 새 그룹에 관한 한 하나의 명령 결과에만 관심이 있다면 방금 언급 한 newgrp를 사용할 수 있습니다. 새로 추가 된 그룹으로 새 쉘을 시작합니다.


5

newgrp 명령 이이 작업을 수행 하기 전에 읽었 지만 현재 쉘에서만 읽었습니다 . 로그 아웃했다가 다시 로그인하는 것보다 더 나은 대안은 없습니다.


3
newgrp가하는 일은 실제로 새로운 쉘을 시작하는 것입니다. 따라서 ^ D를하면 이전 쉘로 돌아갑니다. 나는 보통 단순히 '간부 인면 newgrp'할
niXar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.