Como startX como usuário não-root dentro do rc.local?

0

Estou tentando iniciar startx como usuário não-root no meu servidor Ubuntu 16.04 ( Linux nanopim1 3.4.113-sun8i #16 SMP PREEMPT Tue Jun 13 14:15:57 CEST 2017 armv7l armv7l armv7l GNU/Linux ) com openbox instalado.

Eu tentei colocar cada um desses arquivos um-por-ne dentro de /rc.local , mas não funcionou! a única coisa que é trabalho é colocar startx sem qualquer adição em /etc/rc.local e ele começa como root!

su -l m -c startx

su -s /bin/bash -c startx m&

su - m -c startx

Também tentei de outra forma, criei um arquivo aqui: /etc/systemd/system/autologin.service com este conteúdo:

[Unit]
Description=Autologin service

[Service]
Type=fork
user=m
group=m
ExecStart=/usr/bin/startx
TimeoutSec=0

[Install]
WantedBy=multi-user.target

Então: sudo systemctl daemon-reload mas não funcionou novamente

Somente colocando startx sozinho dentro de /etc/local funciona, mas é root usuário que eu não quero ser!

    
por user145959 23.11.2017 / 09:24

1 resposta

1

Versão do gerenciador de exibição (mais fácil)

Normalmente, o trabalho do gerenciador de exibição mostra uma tela de login e inicia uma sessão do usuário. Se você tivesse um, seria um caminho de menor resistência para configurá-lo para autologin. É uma solução amplamente usada e provavelmente bem testada e suportada. Você precisaria configurá-lo para 1) autologin e 2) usar sua sessão preferida, mas ambos normalmente são suportados com os gerenciadores de exibição usuais suportados pelo seu linux (lightdm, xdm, qualquer coisa ..).

No Ubuntu 16.04 (não-servidor) eu tenho o seguinte em /etc/lightdm/lightdm.conf

[Seat:*]
autologin-guest=false
autologin-user=xyz
autologin-user-timeout=0

Você precisaria instalar e possivelmente ativar o lightdm

apt-get install lightdm

O Lightdm é o gerenciador de exibição padrão do Ubuntu. Ele não é instalado por padrão na edição do servidor ubuntu e você instalará pacotes serverais para que a maneira manual mais difícil seja necessária se você quiser evitá-los.

Formas de configurar um login gráfico no servidor Ubuntu é melhor descrito aqui link , após o qual você pode configurar o autologin se desejar.

Você pode querer selecionar seu tipo de sessão pré-configurada (openbox), configurando /home/username/.dmrc para algo como

[Desktop]
Session=openbox

Manual (startx)

Eu não sei exatamente o que é necessário para iniciar um x startx na inicialização, mas sugiro que o problema seja decomposto passo a passo:

  1. você diz que o startx funciona como root. Seria bom verificar se você pode logar como root em um console e iniciar uma sessão x com:

    root@xyz # startx
    
  2. Certifique-se de que você pode iniciar uma sessão X quando estiver logado como usuário pré-selecionado.

    myuser@xyz $ startx
    
  3. Certifique-se de que você pode iniciar uma sessão X como o usuário pré-configurado, mas enquanto estiver logado como root, baseando-se no comando anterior:

    a) Use algo como:

    root@xyz # su -l myuser -c startx
    

    cite o comando se você precisar de vários argumentos:

    root@xyz # su -l myuser -c "startx arg1 arg2 .."
    

    b) Você pode pular esta etapa se você definir o usuário na unidade systemd.

  4. Faça o autostart.

    a) Adicione o comando (3a) a /etc/rc.local e reinicialize.

    b) Use uma unidade do sistema como você descreveu, com o comando configurado de acordo com 2/3. Para testar, você pode usar algo como

    root@xyz # systemctl stop autologin  # make sure to reset service
    root@xyz # systemctl daemon-reload   # don't know if needed
    root@xyz # systemctl start autologin
    

    Uma vez que funcione, você pode precisar ativá-lo para iniciar automaticamente ou o que for que o sistema precisa (não um especialista).

    root@xyz # systemctl enable autologin
    
por 23.11.2017 / 11:51