![다시 시작하지 않고 새로 추가된 사용자 그룹에 변경 사항을 적용하려면 어떻게 해야 합니까? [복사]](https://linux55.com/image/17492/%EB%8B%A4%EC%8B%9C%20%EC%8B%9C%EC%9E%91%ED%95%98%EC%A7%80%20%EC%95%8A%EA%B3%A0%20%EC%83%88%EB%A1%9C%20%EC%B6%94%EA%B0%80%EB%90%9C%20%EC%82%AC%EC%9A%A9%EC%9E%90%20%EA%B7%B8%EB%A3%B9%EC%97%90%20%EB%B3%80%EA%B2%BD%20%EC%82%AC%ED%95%AD%EC%9D%84%20%EC%A0%81%EC%9A%A9%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
다음 사용자로 로그인한다고 가정해 보겠습니다 takpar
.
takpar@skyspace:/$
takpar
루트로서 다음 명령을 사용하여 그룹 구성원으로 추가했습니다 webdev
.
# usermod -a -G webdev takpar
하지만 아직 적용되지 않은 것 같습니다. 예를 들어 webdev
그룹 읽기 권한이 있는 디렉터리에 들어갈 수 없기 때문입니다.
400169 drwxr-x--- 3 webdev webdev 4.0K 2011-08-15 22:34 public_html
takpar@skyspace:/home/webdev/$ cd public_html/
bash: cd: public_html/: Permission denied
그런데 재부팅하고 나면 예상대로 접속이 됩니다. 이런 그룹 변경이 일상인데, 재부팅하지 않고도 적용할 수 있는 방법은 없을까요?
답변
현재 세션이 새 그룹을 인식하도록 할 방법이 없는 것 같습니다. 예를 들어 파일 관리자는 새 변경 사항을 처리할 수 없습니다. 하지만 다시 로그인하면 작업이 완료됩니다. 이 su
명령은 현재 세션의 임시 명령에도 작동합니다.
답변1
로컬 해결 방법: su yourself
재로그인을 사용하세요. 새 세션에서 귀하는 이 그룹의 구성원으로 간주됩니다.
현재 그룹 ID 변경(및 새 그룹 로그인)에 대한 매뉴얼 페이지 newgrp
도 흥미로울 수 있습니다.sg
webdev
현재 셸에서 그룹 ID(및 권한)를 사용 하려면 다음을 사용하세요.newgrp webdev
그룹 ID를 사용하여 명령을 시작하고 셸에서 현재 권한을 유지하려면 다음을 사용합니다.
sg webdev -c "command"
( 그룹
sg
과 유사su
하지만 시스템 데이터에 그룹의 구성원으로 나열되어 있으면 그룹 비밀번호 없이 작동합니다.)
답변2
.gpasswd
다음을 사용하여 그룹 takpar
에 추가할 수 있습니다 webdev
.
$ gpasswd -a <user> <group>
귀하의 경우에는 다음과 같습니다:
$ gpasswd -a takpar webdev
getent group {name}
다음 명령을 사용하여 그룹 멤버십을 확인할 수 있습니다 .
$ getent group webdev
webdev:x:1008:webdev,takpar
이는 와 동일해야 합니다 cat /etc/group | grep webdev
. 완성도를 높이기 위해 id
셸 세션의 출력은 다음과 같습니다.takpar
$ id takpar
uid=1007(takpar) gid=1007(takpar) groups=1007(takpar),1008(webdev)
답변3
id webdev
id
뭔가 잘못된 것 같습니다. 당신이 자신 에 대해 알고 싶은 것은 takpar
사실이 아닙니다 webdev
.
id
및 의 출력을 비교하면 id takpar
전자는 아직 변경 사항을 표시하지 않지만 후자는 변경 사항을 표시하는 것을 볼 수 있습니다. 왜? id
현재 프로세스의 그룹이 표시되기 때문이다 . 로그아웃했다가 다시 로그인하거나 새 터미널 창을 열면 재부팅하지 않고도 이미 변경 사항을 확인할 수 있습니다.