Puis-je définir un utilisateur par défaut dans lightdm?

12

J'ai joué avec Ubuntu Oneiric sur mon netbook (où la casse n'est pas vraiment un problème); J'aime le nouvel écran de connexion de lightdm, mais il a une gêne mineure: en plus de mon propre compte d'utilisateur, il y a un autre compte pour une utilisation occasionnelle par ma petite amie, et son compte d'utilisateur est celui qui est toujours concentré (probablement parce qu'il est d'abord alphabétique) .

Je sais comment résoudre ce problème dans gdm mais je n'ai pas trouvé de solution pour lightdm . Est-ce que quelqu'un sait comment le configurer pour que mon compte soit mis en surbrillance par défaut?

Sean Fitzpatrick
la source

Réponses:

5

Dans /etc/lightdm/lightdm.conf

Descendez le fichier jusqu'à ce que vous arriviez à:

# greeter-hide-users=false

Dé-commentez-le, assurez-vous que la valeur est fausse.

Lizardx
la source
2
J'avais eu l'impression que les options et les valeurs commentées dans /etc/lightdm/lightdm.conf indiquaient les valeurs par défaut mais ce n'est pas le cas. Donc, simplement des lignes sans commentaires peuvent avoir un effet. Certaines options semblent également prendre effet lors de la déconnexion / connexion, cette option semble cependant nécessiter un redémarrage pour prendre effet.
PiersyP
Il existe trois niveaux pour cela, les fichiers de configuration étant lus dans cet ordre (c'est-à-dire que la dernière remplace la précédente): les fichiers dans /usr/share/lightdm/lightdm.conf.d, les fichiers dans /etc/lightdm.conf.det /etc/lightdm.conflui - même. Les valeurs par défaut peuvent être remplacées plus tôt et doivent être réinitialisées plus tard.
Fiximan
C'est une clarification utile, merci.
Lizardx
4

La réponse de hackerb9 l'a fait pour moi, mais plutôt que de créer un script, il est beaucoup plus simple de simplement "figer" le fichier de configuration. Voici quoi faire:

  • Ouvrez le fichier de configuration pour le modifier (notez qu'en fonction de la saveur d'Ubuntu que vous utilisez, le dossier à l'intérieur .cachepeut être appelé autre chose)
    sudo nano /var/lib/lightdm/.cache/lightdm-gtk-greeter/state
  • Modifiez la ligne suivante pour refléter le nom de compte de l'utilisateur par défaut
    last-user=[DEFAULT-USER]
  • Il serait peut-être bon d'ajouter également un commentaire au fichier indiquant qu'il est verrouillé et comment
  • Exécutez la commande suivante pour "figer" le fichier afin qu'il ne puisse pas être modifié par lightdm
    sudo chattr +i /var/lib/lightdm/.cache/lightdm-gtk-greeter/state

Désormais, lightdm ne pourra pas mettre à jour ce fichier lorsqu'un autre utilisateur se connectera, garantissant que votre utilisateur par défaut sera toujours répertorié lors du chargement de l'écran de connexion.

Si cela fonctionne pour vous et que vous décidez de voter, veuillez voter pour le message de hackerb9 ainsi que celui-ci est dérivé par une méthode distincte.

b_laoshi
la source
1
Très bien, @b_laoshi. J'aime que vous ne dépendiez pas d'un script shell. Je suggère de mettre un commentaire dans le fichier d'état afin que les futurs administrateurs système (ou vous-même) sachent pourquoi il est immuable. Je pense que c'est une bonne solution sur une seule machine, mais je dois mentionner qu'il pourrait y avoir des inconvénients pour les personnes qui l'essaient en laboratoire. (1) les attributs étendus du système de fichiers ne doivent pas être utilisés pour persister sur une sauvegarde. (2) de même, si vous disposez d'un laboratoire d'ordinateurs copiés à partir d'un maître réseau, les attributs fs peuvent être perdus. (3) / var / lib n'est pas garanti d'être conservé, par exemple, lors d'une mise à niveau.
hackerb9
3

Modifiez le fichier /etc/lightdm/lightdm.conf ( gksu gedit /etc/lightdm/lightdm.conf) et ajoutez-y une ligne comme celle-ci:

default-user=sean_fitzpatrick
desgua
la source
Merci, mais jusqu'à présent, je n'ai pas eu de chance - cela a-t-il fonctionné pour vous? J'ai essayé différentes variantes, par exemple default-user = sean (mon nom de connexion), default-user = 1000 (mon UID), etc. mais jusqu'à présent, aucun changement.
Sean Fitzpatrick
Je l'ai lu quelque part, je ne me souviens pas où. Je n'utilise pas encore lightdm. Je ferai plus de recherches.
desgua
OK, cela semble fonctionner maintenant - avec les dernières mises à jour, le bon utilisateur est sélectionné par défaut. Je ne sais pas si cela est dû à l'ajout de la ligne utilisateur par défaut, ou s'il se souvient maintenant de la dernière connexion. (Je suppose que je pourrais essayer de supprimer la ligne d'utilisateur par défaut et voir ce qui se passe - mais au moins cela fonctionne maintenant!)
Sean Fitzpatrick
2
En guise de note rapide pour quiconque lit ceci et utilise 12.04, ce paramètre n'a plus aucun effet et n'est plus dans l'exemple de fichier conf. Je crois qu'à partir du 12.04, la valeur par défaut sera le dernier utilisateur connecté.
mfisch
3

L'option "utilisateur par défaut" a été supprimée de lightdm. Pourquoi? Personne ne sait. Cela fait cinq ans que cette question a été posée à l'origine et elle est toujours cassée. Lightdm enregistre maintenant l'état de la dernière personne connectée dans un fichier caché ici:

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

Voici donc une solution de contournement en trois étapes:

  1. Créez un script shell appelé /usr/local/bin/lightdm-default-useravec le contenu suivant:

    #!/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. Rendez-le exécutable: chmod 755 /usr/local/bin/lightdm-default-user

  3. Demandez à lightdm d'exécuter automatiquement le script au démarrage en modifiant /etc/lightdm/lightdm.confet en ajoutant une ligne dans la [SeatDefaults]section:

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

C'est horriblement laid mais c'est malheureusement la meilleure solution pour le moment.

hackerb9
la source
Je soupçonne que cela a été fait pour des raisons de sécurité (c'est-à-dire que le nom d'utilisateur est considéré comme une information sensible).
Scott Smith
C'était exactement ce dont j'avais besoin. J'ai cependant adopté une approche légèrement différente. Le script shell n'est pas réellement nécessaire. Voir ma réponse pour une explication du "gel" du statefichier.
b_laoshi