Alterar o HOME de um usuário durante uma sessão gráfica

Alterar o HOME de um usuário durante uma sessão gráfica

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/passwde posso sobrescrever a variável de ambiente HOME sem problemas, mas os aplicativos ainda parecem usar o home set in passwdem vez da variável de ambiente, pelo menos em um ambiente gráfico . Não consigo configurar a casa passwdporque 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 suno 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?

informação relacionada