내가 이해 한대로 리눅스 세션은 로그인 할 때 그룹 멤버쉽을 캐시합니다. 그런 다음 새 그룹 멤버십이 추가 된 경우 (예 :로 adduser someuser somegroup
) 새 멤버십을 이용하려면 사용자가 로그 아웃했다가 다시 로그인해야합니다.
내 질문은 : 다시 로그인하거나 현재 프로세스를 종료하거나 새 프로세스를 시작하지 않고 프로세스 내 그룹 멤버 자격을 새로 고칠 수 있는 방법이 있습니까?
답변
세션에서 새 로그인을 시작할 수 있습니다
$ su - your_login
실행중인 프로세스에는 영향을 미치지 않습니다. Xserver를 사용하는 경우 xterm을 시작하고이 명령을 입력 할 수 있습니다 (이 터미널 세션에만 영향을 미침). 지속성을 유지하는 유일한 방법은 세션을 마치고 다시 시작하는 것입니다
답변
나는 그렇게 생각하지 않습니다. 그러나이 newgrp
명령 을 사용 하여 새 그룹으로 새 쉘을 생성 할 수 있습니다 . 이것은 영구적이지 않습니다.
newgrp superawesomegroupname
사용자를 다시 로그인해야합니다.
답변
다른 사람들은 ” su - $USER
“과 ” newgrp
“에 대해 언급했으며 ” sg
” 도 참조해야한다고 언급해야한다고 생각했습니다 .
답변
넌 할 수있어:
exec su -l $USER
터미널을 종료하지 않고 그룹 목록을 암시 적으로 새로 고칩니다.
답변
gpasswd
즉시 변경에 사용할 수 있습니다 .
gpasswd -a someuser somegroup
새로운 쉘이나 재 로그인을 만들 필요가 없습니다. 그런 다음 다음을 사용하여 그룹 구성원을 확인하십시오 getent
.
getent group somegroup
답변
이 정보는 (재 로그인 할 필요가없는 요구 사항 만 충족하지만)
exec /bin/bash -l
-l 플래그는 새로운 로그인 쉘을 가정하고 exec는 현재 쉘을 새로운 쉘로 대체합니다. BTW, 쉘 이름을 잘못 입력하지 마십시오 🙂
앞에서 제안한대로 newgrp 및 su를 사용할 때의 한 가지 문제점은 새로운 하위 쉘이 작성된다는 것입니다. 예, exec 명령으로도 진행할 수 있습니다.