É possível adicionar um perfil GRUB para login automático de um usuário e iniciar um script (15.10)?

1

Eu tenho uma máquina de 16,10 e 64 bits com várias contas de usuário. Normalmente, eu seleciono o Ubuntu no GRUB, ele inicializa e mostra a tela de login, seleciono uma conta, insiro a senha e inicio meus aplicativos.

Está tudo bem e deve continuar assim, mas eu adoraria ter outra opção no menu GRUB:

Se eu selecionar esse, ele deve inicializar a mesma instalação do Ubuntu, mas automaticamente entrar em uma conta de usuário específica (que é protegida por senha) e iniciar um script, que pode não ser iniciado se eu fizer login normalmente. Como o login automático ignora a senha da conta, eu também adoraria proteger com senha essa opção de inicialização do GRUB, para que eu tenha que inserir minha senha (ou outra diferente) no GRUB antes de inicializar essas opções únicas.

É possível definir algo assim? Como eu teria que fazer isso?

    
por Byte Commander 26.11.2015 / 13:08

1 resposta

2

Trabalho em andamento

Isso pode ser feito usando:

  1. uma sessão X personalizada que inicia um gerenciador de janelas básico e executa o script
  2. uma configuração personalizada para o LightDM que irá autenticar seu usuário e usar a sessão acima
  3. um serviço personalizado para LightDM que usará a configuração acima
  4. parâmetros do kernel apropriados para desativar o serviço LightDM normal e iniciar o personalizado
  5. Configuração do GRUB para criar entradas automaticamente com os parâmetros acima, com proteção por senha

Para este exemplo, mostrarei como configurar um modo de quiosque usando o Google Chrome.

O script

#! /bin/sh
metacity &
while true
do 
    google-chrome --start-maximized
    if zenity --question --text='Do you want to logout?' --title='Logout'
    then
        exit
    fi
done

Mantenha-o em, digamos, /usr/local/bin/chrome-kiosk.sh , torne-o executável. Observe que eu uso metacity para um gerenciador de janelas simples que me fornece uma configuração viável sem configuração adicional.

A sessão X

[Desktop Entry]
Name=Chrome
Comment=This session logs runs a Google Chrome kiosk
Exec=/usr/local/bin/chrome-kiosk.sh
Icon=google-chrome
Type=Application
X-LightDM-DesktopName=Chrome

Salve em /usr/share/xsessions/chrome.desktop . Se você usar um script diferente, altere pelo menos a linha Exec de acordo.

A configuração LightDM

[Seat:*]
autologin-guest=false
autologin-user=username
autologin-user-timeout=0
autologin-session=chrome

Salve como /etc/lightdm/autologin-lightdm.conf . Substitua username pelo seu nome de usuário desejado.

O serviço LightDM

systemctl cat lightdm.service | 
  sed '/ExecStart/s/$/ --config=/etc/lightdm/autologin-lightdm.conf' |
  sudo tee /etc/systemd/system/autologin-lightdm.service

Isso cria uma cópia personalizada do padrão lightdm.service denominado autologin-lightdm.service at /etc/systemd/system , com a linha ExecStart alterada para:

ExecStart=/usr/sbin/lightdm --config /etc/lightdm/autologin-lightdm.conf

Os parâmetros do kernel

Para testar isso, no menu GRUB, pressione e para editar a entrada do Ubuntu. Encontre a linha linux e anexe:

systemd.mask=display-manager.service systemd.wants=autologin-lightdm.service

(Você pode omitir as extensões .service .)

Pressione Ctrl X . Você deve estar conectado ao usuário e ter uma janela maximizada do Google Chrome.

Configuração do GRUB

TBD.

    
por muru 01.02.2016 / 16:09