Como criar / excluir $ XDG_RUNTIME_DIR no login / logoff

1

Hoje fiquei surpreso com ssh na minha caixa executando o Arch Linux e descobri que /run/user/$(id -u) não existia.

A Especificação de diretório base do XDG diz:

$XDG_RUNTIME_DIR defines the base directory relative to which user-specific non-essential runtime files and other file objects (such as sockets, named pipes, ...) should be stored. The directory MUST be owned by the user, and he MUST be the only one having read and write access to it. Its Unix access mode MUST be 0700.

The lifetime of the directory MUST be bound to the user being logged in. It MUST be created when the user first logs in and if the user fully logs out the directory MUST be removed. If the user logs in more than once he should get pointed to the same directory, and it is mandatory that the directory continues to exist from his first login to his last logout on the system, and not removed in between. Files in the directory MUST not survive reboot or a full logout/login cycle.

Na caixa systemd , /run/user/$(id -u) é o lugar preferido para $XDG_RUNTIME_DIR (mesmo que precise ser criado?)

Se não, qual é a prática recomendada para criar $XDG_RUNTIME_DIR ?

Como posso garantir que o diretório seja excluído somente quando eu tiver "totalmente" efetuado logout?

(significa "totalmente" significa que todos os processos criados por shells de login foram encerrados? Como verificar isso?)

    
por Tom Hale 22.10.2018 / 08:35

1 resposta

0

O diretório /run/user/N , o user@N service e a variável de ambiente XDG_RUNTIME_DIR são gerenciados por um Módulo de Autenticação Pluggable específico do systemd e pelo serviço logind . No primeiro logon, eles criam o diretório, criam o sistema de arquivos montado lá e iniciam o serviço; e no último logoff eles param o serviço, desmontam o sistema de arquivos e removem o diretório. Esse comportamento é alterado quando a opção linger do systemd é definida para a conta.

Outros sistemas operam de maneira diferente.

Leitura adicional

por 22.10.2018 / 16:02