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