组成员身份随着 tmux 消失

ash*_*ash 6 permissions tmux group

我有一个奇怪的问题,我的用户 (on Linux Mint 18.3 Sylvia) 是 group 的一部分docker,我通过启动终端来验证:

$ groups
me adm cdrom sudo dip plugdev lpadmin sambashare docker
Run Code Online (Sandbox Code Playgroud)

现在,当我启动 tmux 并运行相同的命令时,我的docker会员资格突然消失了:

$ tmux
$ groups
me adm cdrom sudo dip plugdev lpadmin sambashare
Run Code Online (Sandbox Code Playgroud)

奇怪的是,当我尝试docker在 tmux 中强行将我的用户添加到组时,它说我已经在其中了!

$ sudo adduser me docker
The user `me' is already a member of `docker'.
Run Code Online (Sandbox Code Playgroud)

我很难过——为什么在 tmux 中会有所作为?作为参考,我使用fishshell,这是我的.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
Run Code Online (Sandbox Code Playgroud)

编辑

当我重新启动计算机时,一切又tmux恢复了(“正常”shell 都显示了我的docker成员身份)。我还是很好奇——为什么会这样?

Kus*_*nda 2

最可能的解释是会话tmux是在您将用户添加到docker组之前启动的。请注意,您可以在不终止活动会话的情况下注销tmux,但是当您稍后再次登录后重新附加到该会话时,该会话不会受到组成员身份更改的影响

在您对问题的编辑中,您说当您开始新tmux会话(重新启动后)时,用户显示为该docker组的成员。这是预期的,因为您现在tmux从组成员身份已更改的环境中启动了一个会话。