最近在使用 docker-ce ,在配置當前用戶組為 docker 的時候(sudo usermod -aG docker $USER)發現:必須要關閉當前的 session 重新登錄 後,才能使得修改的組生效。 通常情況下,因為當前環境還運行很多軟體,如果重新登錄session的話,很不方便。我通 ...
最近在使用 docker-ce ,在配置當前用戶組為 docker 的時候(sudo usermod -aG docker $USER)發現:必須要關閉當前的 session 重新登錄 後,才能使得修改的組生效。
通常情況下,因為當前環境還運行很多軟體,如果重新登錄session的話,很不方便。我通過查找資料,尋找到一些解決方案:
方案一:
- id -g 給出當前用戶的主組號,我們稱為 origin_group_id, id -G 列出所有組號
- newgrp <new group name> , 這裡我使用: newgrp docker
- id -g 顯示當前組 為 973 正是docker 組了。
- 然後,再使用 newgrp <origin_group_id> , 此處 我使用的是 newgrp xuyaowen .
- 這種方法,一次能使得一個組生效,但是能解決大多數情景的需求。而且也不需要重新輸入 root 密碼了。
另外一種解決方案:
- su - $USER : 使用這個命令重新開始一個 session , 並重新繼承當前環境。
- id : 再使用命令,就會發現所修改的組存在列表中。
這兩種解決方案,也適用於解決 chsh 在 X window 中改變當前用戶預設 shell 不及時生效的情況。
希望能解決你的問題,如果對你有幫助,請點擊右下角的推薦。
參考連接:https://superuser.com/questions/272061/reload-a-linux-users-group-assignments-without-logging-out
保持更新,轉載請註明出處。