Acabei de me adicionar ao grupo "docker" na minha estação de trabalho. Eu devidamente saí e entrei novamente no meu ambiente de área de trabalho, mas ainda não estou no grupo:
mcon@cinderella:~$ id
uid=1000(mcon) gid=1000(mcon) groups=1000(mcon),20(dialout),27(sudo),46(plugdev),115(lpadmin),124(vboxusers)
mcon@cinderella:~$ grep mcon /etc/group
dialout:x:20:mcon,mauro
sudo:x:27:mcon
plugdev:x:46:mcon
mcon:x:1000:
lpadmin:x:115:mcon
vboxusers:x:124:mauro,mcon
docker:x:136:mcon
Estou sob um Debian Sid atualizado. Minha área de trabalho é Gnome/Cinnamon
Eu sei que isso pode ser corrigido reiniciando, mas gostaria de entender o que está acontecendo.
Observe que usar o "truque su" realmente funciona:
mcon@cinderella:~$ su - mcon
Password:
mcon@cinderella:~$ id
uid=1000(mcon) gid=1000(mcon) groups=1000(mcon),20(dialout),27(sudo),46(plugdev),115(lpadmin),124(vboxusers),136(docker)
POR QUE sair e depois entrar novamente não?
UPDATE : uma investigação mais aprofundada mostra que, após o logout , ainda há uma tonelada de processos em execução com meu ID de usuário, incluindo systemd, sh, vários gvfs-whatever, gpg-agent, etc. Matar o shell não mudou nada, mas estou um pouco com medo de matar todos eles. O logout não deve encerrar todas as atividades em meu nome? Isso parece uma falha de segurança (ou não?). Vou tentar matar todos esses processos para ver se algo está "mantendo a sessão ativa" (na pior das hipóteses, terei que reiniciar).
Update2 (conforme solicitado por @StephenKitt) :
mcon@cinderella:~$ loginctl show-user $(whoami)
UID=1000
GID=1000
Name=mcon
Timestamp=Sat 2019-03-23 15:01:35 CET
TimestampMonotonic=24931331
RuntimePath=/run/user/1000
[email protected]
Slice=user-1000.slice
Display=2
State=active
Sessions=2
IdleHint=no
IdleSinceHint=1553356954121832
IdleSinceHintMonotonic=7284187020
Linger=no
Update3 (inspirado por @StephenKitt) :
Aparentemente session2 existe, mas parece ser a única presente... mas o comando sem argumento dá uma visão diferente e diz que há apenas uma sessão ativa. Estou bastante confuso; de onde vem o "Sessions=2" acima?
mcon@cinderella:/tmp/ca$ loginctl show-session
EnableWallMessages=no
NAutoVTs=6
KillUserProcesses=no
RebootToFirmwareSetup=no
IdleHint=no
IdleSinceHint=1553356954121832
IdleSinceHintMonotonic=7284187020
BlockInhibited=handle-power-key:handle-suspend-key:handle-hibernate-key:handle-lid-switch
DelayInhibited=shutdown:sleep
InhibitDelayMaxUSec=30s
UserStopDelayUSec=10s
HandlePowerKey=poweroff
HandleSuspendKey=suspend
HandleHibernateKey=hibernate
HandleLidSwitch=suspend
HandleLidSwitchDocked=ignore
HoldoffTimeoutUSec=30s
IdleAction=ignore
IdleActionUSec=30min
PreparingForShutdown=no
PreparingForSleep=no
Docked=yes
LidClosed=no
OnExternalPower=yes
RemoveIPC=yes
RuntimeDirectorySize=3314405376
InhibitorsMax=8192
NCurrentInhibitors=7
SessionsMax=8192
NCurrentSessions=1
mcon@cinderella:/tmp/ca$ loginctl show-session 2
Id=2
User=1000
Name=mcon
Timestamp=Sat 2019-03-23 15:01:35 CET
TimestampMonotonic=24933340
VTNr=7
Seat=seat0
Display=:0
Remote=no
Service=lightdm
Desktop=lightdm-xsession
Scope=session-2.scope
Leader=2009
Audit=2
Type=x11
Class=user
Active=yes
State=active
IdleHint=no
IdleSinceHint=1553356954121832
IdleSinceHintMonotonic=7284187020
LockedHint=no
Acontece que o logout não fechará todos os processos em execução em nome do usuário. Fazer logon no console Linux (Ctrel-Alt-F1) como root e emitir
killall -HUP -u mcon
resolve o problema.Nota: o comando acima não encerrará todos os processos com uid efetivo "mcon" (em particular systemd, dbus-daemon e vários outros resistem), mas parece suficiente para resolver o problema de "recarregamento de grupo".
Ainda estou me perguntando por que o logout não é realmente claro depois de si mesmo.