Outro dia tive a ideia de criar uma sessão de convidado independente do gerenciador de exibição.
Minha idéia básica era alterar o shell de login para um programa personalizado que criasse um local temporário em tempo real (fe /tmp/guest-XXXXXX
) e atribuir essa sessão a esse local. Depois que o usuário fizer logout, esse diretório será removido novamente. O problema que encontrei é o seguinte: preciso definir um home in /etc/passwd
e posso sobrescrever a variável de ambiente HOME sem problemas, mas os aplicativos ainda parecem usar o home set in passwd
em vez da variável de ambiente, pelo menos em um ambiente gráfico . Não consigo configurar a casa passwd
porque não tenho conhecimento dela até a sessão começar.
A lógica básica que criei é assim:
- shell de login iniciado
- casa temporária criada
- HOME está definido para esta casa temporária
- uma concha real é bifurcada
- depois que o shell real termina, o lar temporário é removido
Isso parece funcionar quando entro su
no usuário, mas executar uma sessão gráfica significa que muitos/todos os programas iniciados usam o conjunto inicial em passwd
.
É possível alterar a página inicial de um usuário instantaneamente/enquanto uma sessão gráfica está ativa? Eu esqueci algo na arquitetura de como as sessões gráficas funcionam?