tmux를 사용하면 그룹 멤버십이 사라집니다.

tmux를 사용하면 그룹 멤버십이 사라집니다.

Linux Mint 18.3 Sylvia내 사용자(on )가 그룹의 일부이기 때문에 이상한 문제가 있습니다. docker터미널을 실행하여 확인했습니다.

$ groups
me adm cdrom sudo dip plugdev lpadmin sambashare docker

이제 tmux를 시작하고 동일한 명령을 실행하면 내 docker멤버십이 갑자기 사라집니다.

$ tmux
$ groups
me adm cdrom sudo dip plugdev lpadmin sambashare

이상한 점은 docker내 사용자를 tmux의 그룹에 강제로 추가하려고 하면 내가 이미 그룹에 속해 있다는 메시지가 표시된다는 것입니다!

$ sudo adduser me docker
The user `me' is already a member of `docker'.

혼란스럽습니다. tmux를 추가하면 왜 달라지나요? 참고로 저는 fish쉘을 사용하고 있는데 이것이 제가 가지고 있는 것입니다 .tmux.conf:

$ cat ~/config/.tmux.conf 
new-session
set -g default-terminal "screen-256color"
set -g history-limit 10000
setw -g mode-keys vi
set-option -g default-shell /usr/bin/fish
set-option -g default-command /usr/bin/fish

편집하다

컴퓨터를 다시 시작했을 때 모든 것이 정상으로 돌아왔습니다( tmux"정상" 셸에는 모두 내 docker멤버십이 표시되었습니다). 아직도 궁금합니다. 왜 이런 일이 발생할까요?

답변1

가장 그럴듯한 설명은 tmux사용자를 그룹에 추가하기 docker전에 세션이 시작 되었다는 것입니다. 활성 세션을 종료하지 않고도 로그아웃할 수 있지만 tmux세션은 종료되지 않습니다.아니요나중에 다시 로그인 후 그룹에 재접속하시면 그룹 멤버십 변경의 영향을 받게 됩니다.

질문 편집에서 새 tmux세션을 시작할 때(다시 시작한 후) 사용자가 docker그룹의 구성원으로 표시된다고 말씀하셨습니다. 이는 이제 tmux그룹 멤버십이 변경된 환경에서 세션을 시작하기 때문에 예상되는 현상입니다.

답변2

방금 같은 문제가 발생했습니다. 기존 tmux 세션을 모두 닫아야 합니다. 이후에는 모든 새로운 tmux 세션이 올바른 그룹을 상속합니다.

답변3

tmux 세션 파일을 삭제할 수 있습니다.

rm /tmp/tmux-1000 # example for uid 1000

그런 다음 새 세션을 시작하고 자신이 그룹의 구성원인지 확인하세요.

답변4

  • tmux-server를 종료하고 새 세션을 시작하면 문제가 해결되었습니다.
  • tmux kill-server
  • tmux new -s ...
  • 또한 사용자/그룹을 수정한 후 현재 터미널 세션을 종료하고 변경 사항을 적용하려면 새 터미널을 시작하십시오.

관련 정보