Você está confundindo "usuários" com "sessões" aqui.
Usar loginctl enable-linger myuser
fará com que o gerenciador de usuários do usuário myuser
inicie na inicialização (e inicie imediatamente se ainda não tiver sido iniciado), mas realmente não iniciará nenhuma sessão para o usuário (isso só acontece quando o usuário faz o login.)
Se você usar o comando loginctl list-users
, verá os efeitos dele. Você também pode usar ps -fu myuser
para ver o gerenciador de usuários ( systemd --user
) em execução para seu usuário assim que você ativar o linger:
[root@myhost ~]# loginctl list-users
UID USER
0 root
1 users listed.
[root@myhost ~]# ps -fu myuser
UID PID PPID C STIME TTY TIME CMD
[root@myhost ~]# loginctl enable-linger myuser
[root@myhost ~]# ps -fu myuser
UID PID PPID C STIME TTY TIME CMD
myuser 12345 1 20 18:44 ? 00:00:00 /usr/lib/systemd/systemd --user
myuser 12349 12345 0 18:44 ? 00:00:00 (sd-pam)
[root@myhost ~]# loginctl list-users
UID USER
0 root
1001 myuser
2 users listed.
Mas não há novas sessões para myuser
, já que ele não está conectado ao console, GUI ou SSH:
[root@myhost ~]# loginctl list-sessions
SESSION UID USER SEAT TTY
1 0 root tty0
1 sessions listed.
Mas, independentemente das sessões, o gerenciador de usuários é iniciado, portanto, se o usuário tiver unidades de usuário (como serviços ou temporizadores), elas serão iniciadas na inicialização, independentemente de o usuário ter efetuado login ou criado uma sessão.
Espero que isso explique a você.
UPDATE : da sua edição à pergunta, parece que o problema que você está tendo é executar systemctl --user
de comandos de um sudo -i
shell e não uma sessão SSH.
Você pode contornar isso exportando o XDG_RUNTIME_DIR
depois de alternar para o usuário, como:
$ export XDG_RUNTIME_DIR=/run/user/$UID
Ou:
$ XDG_RUNTIME_DIR=/run/user/$UID systemctl --user status servicename
O motivo pelo qual você não precisa disso enquanto faz o login através do SSH é que o SSH irá autenticá-lo com o PAM e um dos módulos do PAM definirá essas variáveis de ambiente para você. Se você usa sudo
, você não passa pelo PAM (pelo menos não pela pilha PAM completa) para que você não os configure corretamente.