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 ...
  • また、ユーザー/グループを変更した後に現在の端末セッションを終了して変更を適用するには、新しい端末を開始します。

関連情報