¿Puedo configurar un usuario predeterminado en lightdm?

12

He estado jugando con Ubuntu Oneiric en mi netbook (donde la rotura no es realmente una preocupación); Me gusta la nueva pantalla de inicio de sesión de lightdm, pero tiene una molestia menor: además de mi propia cuenta de usuario, hay otra cuenta para uso ocasional de mi novia, y su cuenta de usuario es la que siempre está enfocada (presumiblemente porque es primero alfabéticamente) .

Sé cómo solucionar esto en gdm pero no he encontrado una solución para lightdm . ¿Alguien sabe cómo configurarlo para que mi cuenta esté resaltada de forma predeterminada?

Sean Fitzpatrick
fuente

Respuestas:

5

En /etc/lightdm/lightdm.conf

Baje el archivo hasta llegar a:

# greeter-hide-users=false

Descomente, asegúrese de que el valor sea falso.

Lagarto
fuente
2
Tenía la impresión de que las opciones y los valores comentados en /etc/lightdm/lightdm.conf indicaban los valores predeterminados, pero ese no es el caso. Entonces, simplemente las líneas sin comentarios pueden tener un efecto. También algunas opciones parecen surtir efecto en el cierre de sesión / inicio de sesión, sin embargo, esta opción parece requerir un reinicio para surtir efecto.
PiersyP
Hay tres niveles de este, con los archivos de configuración que se leen en este orden (es decir últimos anulaciones anteriores): archivos en /usr/share/lightdm/lightdm.conf.d, archivos en /etc/lightdm.conf.dy /etc/lightdm.confen sí. Los valores predeterminados pueden anularse antes y luego deben restablecerse.
Fiximan 01 de
Esa es una aclaración útil, gracias.
Lizardx
4

La respuesta de hackerb9 lo hizo por mí, pero en lugar de crear un script, es mucho más simple simplemente "congelar" el archivo de configuración. Esto es lo que debes hacer:

  • Abra el archivo de configuración para editarlo (tenga en cuenta que, dependiendo del sabor de Ubuntu que esté utilizando, la carpeta dentro .cachepodría llamarse de otra manera)
    sudo nano /var/lib/lightdm/.cache/lightdm-gtk-greeter/state
  • Edite la siguiente línea para reflejar el nombre de cuenta del usuario predeterminado
    last-user=[DEFAULT-USER]
  • Quizás sería bueno agregar también un comentario al archivo que indique que está bloqueado y cómo
  • Ejecute el siguiente comando para "congelar" el archivo para que lightdm no pueda cambiarlo
    sudo chattr +i /var/lib/lightdm/.cache/lightdm-gtk-greeter/state

Ahora lightdm no podrá actualizar este archivo cuando un usuario diferente inicie sesión para asegurarse de que su usuario predeterminado siempre aparecerá en la lista cuando se cargue la pantalla de inicio de sesión.

Si esto funciona para usted, y decide votar arriba, por favor, vote por la publicación de hackerb9 y esto se deriva por un método separado.

b_laoshi
fuente
1
Muy bien, @b_laoshi. Me gusta que no dependas de un script de shell. Sugiero poner un comentario en el archivo de estado para que los futuros administradores de sistemas (o usted mismo) sepan por qué es inmutable. Creo que esta es una buena solución en una sola máquina, pero debo mencionar que puede haber inconvenientes para las personas que lo prueban en una situación de laboratorio. (1) no se debe confiar en que los atributos del sistema de archivos extendido persistan en una copia de seguridad. (2) del mismo modo, si tiene un laboratorio de computadoras copiadas de un maestro de red, los atributos fs pueden perderse. (3) / var / lib no se garantiza que se conserve, por ejemplo, en una actualización.
hackerb9
3

Edite el archivo /etc/lightdm/lightdm.conf ( gksu gedit /etc/lightdm/lightdm.conf) y agregue una línea como esta:

default-user=sean_fitzpatrick
desgua
fuente
Gracias, pero hasta ahora no he tenido suerte. ¿Te ha funcionado? He intentado diferentes variaciones, por ejemplo, default-user = sean (mi nombre de usuario), default-user = 1000 (mi UID), etc., pero hasta ahora, ningún cambio.
Sean Fitzpatrick
Lo he leído en alguna parte, no recuerdo dónde. No estoy usando lightdm todavía. Investigaré más.
desgua
OK, esto parece funcionar ahora: con las últimas actualizaciones, el usuario correcto se selecciona de forma predeterminada. No estoy seguro si esto se debe a que agregué la línea de usuario predeterminada, o si ahora recuerda el último inicio de sesión. (Creo que podría intentar eliminar la línea de usuario predeterminada y ver qué sucede, ¡pero al menos funciona ahora!)
Sean Fitzpatrick
2
Como una nota rápida para cualquiera que lea esto y use 12.04, esta configuración ya no tiene ningún efecto y ya no está en el archivo de ejemplo de configuración. Creo que a partir del 12.04, el valor predeterminado será el último usuario registrado.
mfisch
3

La opción "usuario predeterminado" se ha eliminado de lightdm. ¿Por qué? Nadie lo sabe. Han pasado cinco años desde que esta pregunta se hizo originalmente y todavía está rota. Lightdm ahora guarda el estado de quién inició sesión por última vez en un archivo oculto aquí:

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

Entonces, aquí hay una solución alternativa de tres pasos:

  1. Cree un script de shell llamado /usr/local/bin/lightdm-default-usercon los siguientes contenidos:

    #!/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. Hazlo ejecutable: chmod 755 /usr/local/bin/lightdm-default-user

  3. Haga que lightdm ejecute automáticamente el script al inicio editando /etc/lightdm/lightdm.confy agregando una línea en la [SeatDefaults]sección:

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

Esto es horriblemente feo pero, desafortunadamente, es la mejor solución en este momento.

hackerb9
fuente
Sospecho que se hizo por razones de seguridad (es decir, el nombre de usuario se considera información confidencial).
Scott Smith
Esto era exactamente lo que necesitaba. Sin embargo, adopté un enfoque ligeramente diferente. El script de shell no es realmente necesario. Vea mi respuesta para una explicación de "congelar" el statearchivo.
b_laoshi