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

1

Outro dia, tive a ideia de criar uma sessão de convidados independente do gerente de exibição.

Minha idéia básica era mudar o shell de login para um programa personalizado que cria uma residência temporária instantaneamente (por exemplo, /tmp/guest-XXXXXX ) e atribuir essa sessão àquela casa. Depois que o usuário fizer logout, ele removerá esse diretório novamente. O problema que encontrei é o seguinte, preciso definir uma casa em /etc/passwd e posso sobrescrever a variável de ambiente HOME sem problemas, mas os aplicativos ainda parecem usar a configuração inicial em passwd em vez da variável de ambiente, pelo menos em um ambiente gráfico. Eu não posso definir a casa em passwd porque eu não sei sobre isso até que a sessão tenha iniciado.

A lógica básica que eu criei é assim:

  • login shell iniciado
  • casa temporária criada
  • HOME está definido para esta casa temporária
  • uma casca real é bifurcada
  • depois que o verdadeiro shell termina, o lar temporário é removido

Isso parece funcionar quando eu su no usuário, mas executar uma sessão gráfica significa que todos os programas / todos os programas iniciados usam o conjunto inicial em passwd .

É possível alterar a casa de um usuário em tempo real / enquanto uma sessão gráfica está ativa? Eu negligenciei algo na arquitetura de como as sessões gráficas funcionam?

    
por Bobby 10.05.2014 / 13:27

0 respostas