새 그룹의 설정을 사용자에게 적용할 수 있도록 명령줄을 통해 로그아웃했다가 다시 로그인하는 방법을 알려주실 수 있나요? 이를 이해하기 위해 현재 testuseraccount로 로그인하고 터미널에 다음 명령을 실행한다고 가정해 보겠습니다.
su
usermod -aG sudo testuseraccount
그래서 저는 su를 입력하면 루트로 들어갈 수 있다고 믿습니다(그러나 쉘 내에서만 가능합니다). 그러면 터미널을 통해 루트에서 로그아웃한 다음 testuseraccount에서 로그아웃했다가 다시 로그인하려면 어떻게 해야 합니까(sudo 그룹이 testusersaccount에 적용되도록)?
답변1
기존 프로세스의 그룹 ID는 변경할 수 없습니다. 즉, 기존 프로세스를 다시 시작하는 것이 한 가지 방법입니다. 하위 프로세스는 상위 프로세스의 그룹 ID를 상속하므로 데스크톱 환경(메뉴...)에서 실행되는 프로그램에는 영향을 줄 수 없습니다.
지정된 셸 내에서 다음 newgrp
명령을 사용하여 새로운 유효 그룹 ID로 새 셸을 시작합니다.
> id
uid=1000(user) gid=100(users) groups=100(users),92(audio)
> newgrp audio
> id
uid=1000(user) gid=92(audio) groups=92(audio),100(users)
audio
이 셸에서 시작된 모든 프로세스는 새로운 유효 그룹 ID( 이 경우) 를 갖게 됩니다 .
그룹에 새 사용자를 추가한 경우 해당 사용자가 새 프로세스를 시작한 후에 이 내용이 다시 적용됩니다.
그러니 원한다면새 X(그래픽 로그인) 세션을 시작합니다.을(를) 사용하려면 이전 세션에서 완전히 로그아웃한 후 로그인하여 새 세션을 시작해야 합니다. 비밀번호 없는 로그인이 활성화되지 않으면 로그인 화면(XDM/GDM/KDM을 통해)을 통한 상호 작용 없이 로그아웃한 후 다시 로그인할 수 없습니다(아무도 권장하지 않음). 한 가지 이유는 로그아웃 중에 사용자의 모든 프로세스가 종료되어 로그인을 시작할 프로세스가 남아 있지 않기 때문입니다.
해결 방법을 만드는 것이 가능할 것으로 예상했지만 "추악"할 것입니다.