Estou usando um Ubuntu 17.10 com o Gnome Desktop instalado. No meu arquivo rc.local
eu estou começando um programa java que se comunica com um servidor TCP. Assim que uma certa seqüência é recebida por esse aplicativo de soquete, eu gostaria de encerrar a área de trabalho atualmente em execução e, em vez disso, iniciar uma nova para o usuário recebido u . Ao mesmo tempo eu não quero que u tenha que digitar sua senha, do jeito que você não precisa quando muda o usuário para u executando su u
com privilégios de root.
Como meu serviço de segundo plano é iniciado a partir do rc.local, ele tem privilégios de root.
No meu aplicativo, gostaria de executar um conjunto de comandos para conseguir isso, mas não tenho idéia do que executar. Minha primeira abordagem foi matar x, logar em tty2 como u e startx lá, mas eu não era capaz de registrar um usuário especificado em uma determinada shell tty nem executar um comando em um dado tty com o ajuda de um comando. Eu tentei openvt -c 2 -f -s -u u -- startx
como foi sugerido para fazer neste segmento: log do Ubuntu em certos shell tty como um usuário distinto , mas isso parece não funcionar da maneira que eu esperava.
Então, em poucas palavras: Como iniciar o desktop gnome para um determinado usuário a partir de rc.local
ignorando a validação de senha?
Sou grato por todo tipo de ajuda. Atenciosamente, Galveston01