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 中会有所作为?作为参考,我使用fish
shell,这是我的.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
成员身份)。我还是很好奇——为什么会这样?
最可能的解释是会话tmux
是在您将用户添加到docker
组之前启动的。请注意,您可以在不终止活动会话的情况下注销tmux
,但是当您稍后再次登录后重新附加到该会话时,该会话不会受到组成员身份更改的影响。
在您对问题的编辑中,您说当您开始新tmux
会话(重新启动后)时,用户显示为该docker
组的成员。这是预期的,因为您现在tmux
从组成员身份已更改的环境中启动了一个会话。