Posso definir um usuário padrão no lightdm?


12

Eu tenho jogado com o Ubuntu Oneiric no meu netbook (onde quebra não é realmente uma preocupação); Gosto da nova tela de login do lightdm, mas há um pequeno incômodo: além da minha própria conta de usuário, há outra conta para uso ocasional da minha namorada, e sua conta de usuário é a que está sempre focada (provavelmente porque é a primeira em ordem alfabética) .

Eu sei como corrigir isso no gdm, mas não encontrei uma solução para o lightdm . Alguém sabe como configurá-lo para que minha conta seja destacada por padrão?

Respostas:


5

Em /etc/lightdm/lightdm.conf

Desça o arquivo até chegar a:

# greeter-hide-users=false

Remova o comentário, verifique se o valor é falso.


2
Fiquei com a impressão de que as opções e valores comentados em /etc/lightdm/lightdm.conf indicavam os valores padrão, mas esse não é o caso. Portanto, simplesmente não comentar linhas pode ter um efeito. Além disso, algumas opções parecem ter efeito no logout / login, mas essa opção parece exigir uma reinicialização para entrar em vigor.
PiersyP

Existem três níveis para isso, com os arquivos de configuração sendo lidos nesta ordem (ou seja, a última sobreposição anterior): arquivos /usr/share/lightdm/lightdm.conf.d, arquivos /etc/lightdm.conf.de /etc/lightdm.confele próprio. Os padrões podem ser substituídos mais cedo e precisam ser redefinidos posteriormente.
Fiximan #

Esse é um esclarecimento útil, obrigado.
Lizardx 01/04/19

4

A resposta do hackerb9 fez isso por mim, mas em vez de criar um script, é muito mais simples simplesmente "congelar" o arquivo de configuração. Aqui está o que fazer:

  • Abra o arquivo de configuração para edição (observe que, dependendo do tipo de Ubuntu que você está usando, a pasta dentro .cachepode ser chamada de outra coisa)
    sudo nano /var/lib/lightdm/.cache/lightdm-gtk-greeter/state
  • Edite a seguinte linha para refletir o nome da conta do usuário padrão
    last-user=[DEFAULT-USER]
  • Talvez seja bom também adicionar um comentário ao arquivo informando que ele está bloqueado e como
  • Execute o seguinte comando para "congelar" o arquivo para que ele não possa ser alterado pelo lightdm
    sudo chattr +i /var/lib/lightdm/.cache/lightdm-gtk-greeter/state

Agora, o lightdm não poderá atualizar esse arquivo quando um usuário diferente efetuar login, garantindo que o usuário padrão sempre seja listado quando a tela de login for carregada.

Se isso funcionar para você, e você decidir votar novamente, vote novamente na publicação de hackerb9, pois isso é derivado de um método separado.


1
Muito bom, @b_laoshi. Eu gosto que você não depende de um script de shell. Eu sugiro colocar um comentário no arquivo de estado para que futuros administradores de sistemas (ou você mesmo) saibam por que é imutável. Penso que esta é uma boa solução em uma única máquina, mas devo mencionar que pode haver desvantagens para as pessoas que tentam em uma situação de laboratório. (1) não se deve confiar nos atributos estendidos do sistema de arquivos para persistir em um backup. (2) da mesma forma, se você tiver um laboratório de computadores copiados de um mestre de rede, os atributos fs poderão ser perdidos. (3) / var / lib não é garantido para ser preservado, por exemplo, em uma atualização.
hackerb9

3

Edite o arquivo /etc/lightdm/lightdm.conf ( gksu gedit /etc/lightdm/lightdm.conf) e adicione uma linha como esta:

default-user=sean_fitzpatrick

Obrigado, mas até agora não tive sorte - isso funcionou para você? Eu tentei variações diferentes, por exemplo, default-user = sean (meu nome de login), default-user = 1000 (meu UID), etc. mas até agora, nenhuma alteração.
Sean Fitzpatrick

Eu li em algum lugar, não lembro onde. Ainda não estou usando o lightdm. Vou pesquisar mais.
desgua

OK, isso parece funcionar agora - com as atualizações mais recentes, o usuário correto é selecionado por padrão. Não tenho certeza se isso se deve ao fato de eu ter adicionado a linha de usuário padrão ou se ela agora se lembra do último login. (Acho que eu poderia tentar remover a linha-padrão do usuário e ver o que acontece - mas pelo menos ele funciona agora!)
Sean Fitzpatrick

2
Como uma observação rápida para quem está lendo isso e usando o 12.04, essa configuração não tem mais efeito e não está mais no arquivo conf de exemplo. Acredito que, a partir de 12.04, o padrão será o último usuário conectado.
Mfisch #

3

A opção "usuário padrão" foi removida do lightdm. Por quê? Ninguém sabe. Faz cinco anos desde que essa pergunta foi feita originalmente e ainda está quebrada. O Lightdm agora salva o estado de quem efetuou login pela última vez em um arquivo oculto aqui:

/var/lib/lightdm/.cache/lightdm-gtk-greeter/state

Então, aqui está uma solução alternativa de três etapas:

  1. Crie um script de shell chamado /usr/local/bin/lightdm-default-usercom o seguinte conteúdo:

    #!/bin/sh
    
    # LightDM removed the default-user option.
    # The only recourse now is an ugly kludge. 
    
    # Note that if you want to default to the "Guest Session",
    # you need to specify the last user as "*guest".
    
    /bin/echo -e '[greeter]\nlast-user=*guest' > /var/lib/lightdm/.cache/lightdm-gtk-greeter/state
    
  2. Torne executável: chmod 755 /usr/local/bin/lightdm-default-user

  3. Faça com que o lightdm execute o script automaticamente na inicialização, editando /etc/lightdm/lightdm.confe adicionando uma linha na [SeatDefaults]seção:

    [SeatDefaults]
    greeter-setup-script=/usr/local/bin/lightdm-default-user
    

Isso é horrivelmente feio, mas é, infelizmente, a melhor solução no momento.


Eu suspeito que isso foi feito por motivos de segurança (ou seja, o nome de usuário é considerado uma informação sensível).
Scott Smith

Era exatamente disso que eu precisava. Adotei uma abordagem um pouco diferente. O script do shell não é realmente necessário. Veja minha resposta para uma explicação sobre "congelar" o statearquivo.
22417 java #
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.