Kann ich in lightdm einen Standardbenutzer festlegen?

12

Ich habe mit Ubuntu Oneiric auf meinem Netbook gespielt (wo Bruch eigentlich kein Problem ist). Ich mag den neuen lightdm-Anmeldebildschirm, aber er hat einen kleinen Nachteil: Neben meinem eigenen Benutzerkonto gibt es noch ein Konto, das meine Freundin gelegentlich nutzen kann, und ihr Benutzerkonto ist immer aktiv (vermutlich weil es das erste in alphabetischer Reihenfolge ist). .

Ich weiß, wie man das in gdm behebt , habe aber keine Lösung für lightdm gefunden . Weiß jemand, wie man es einrichtet, damit mein Konto standardmäßig hervorgehoben wird?

Sean Fitzpatrick
quelle

Antworten:

5

In /etc/lightdm/lightdm.conf

Gehen Sie die Datei durch, bis Sie Folgendes erreichen:

# greeter-hide-users=false

Entkommentiere es und stelle sicher, dass der Wert falsch ist.

Lizardx
quelle
2
Ich hatte den Eindruck, dass die auskommentierten Optionen und Werte in /etc/lightdm/lightdm.conf die Standardwerte angaben, aber das ist nicht der Fall. Es kann also eine Auswirkung haben, Zeilen einfach nicht zu kommentieren. Außerdem scheinen einige Optionen beim Abmelden / Anmelden wirksam zu werden. Diese Option scheint jedoch einen Neustart erforderlich zu machen, um wirksam zu werden.
PiersyP
Hierfür gibt es drei Ebenen, in denen die Konfigurationsdateien in dieser Reihenfolge gelesen werden (dh die letzte überschreibt die vorherige): Dateien in /usr/share/lightdm/lightdm.conf.d, Dateien in /etc/lightdm.conf.dund /etc/lightdm.confselbst. Die Standardeinstellungen werden möglicherweise früher überschrieben und müssen später zurückgesetzt werden.
Fiximan
Das ist eine hilfreiche Klarstellung, danke.
Lizardx
4

Die Antwort von hackerb9 hat es für mich getan, aber anstatt ein Skript zu erstellen, ist es viel einfacher, die Konfigurationsdatei einfach "einzufrieren". Hier ist was zu tun:

  • Öffne die Konfigurationsdatei zum Bearbeiten (beachte, dass der Ordner in der Datei abhängig von der verwendeten Ubuntu-Version .cacheetwas anderes heißen kann)
    sudo nano /var/lib/lightdm/.cache/lightdm-gtk-greeter/state
  • Bearbeiten Sie die folgende Zeile, um den Kontonamen des Standardbenutzers wiederzugeben
    last-user=[DEFAULT-USER]
  • Vielleicht wäre es gut, der Datei auch einen Kommentar hinzuzufügen, der besagt, dass sie gesperrt ist und wie
  • Führen Sie den folgenden Befehl aus, um die Datei "einzufrieren", damit sie nicht von lightdm geändert werden kann
    sudo chattr +i /var/lib/lightdm/.cache/lightdm-gtk-greeter/state

Jetzt kann lightdm diese Datei nicht mehr aktualisieren, wenn sich ein anderer Benutzer anmeldet. Dadurch wird sichergestellt, dass Ihr Standardbenutzer immer aufgelistet wird, wenn der Anmeldebildschirm geladen wird.

Wenn dies für Sie funktioniert und Sie sich dazu entschließen, Ihre Stimme zu erheben, stimmen Sie bitte den Beitrag von hackerb9 hoch. Dies ist eine von einer separaten Methode abgeleitete Methode.

b_laoshi
quelle
1
Sehr schön, @b_laoshi. Mir gefällt, dass Sie nicht auf ein Shell-Skript angewiesen sind. Ich schlage vor, einen Kommentar in die Statusdatei aufzunehmen, damit zukünftige Sysadmins (oder Sie selbst) wissen, warum es unveränderlich ist. Ich denke, dies ist eine gute Lösung für eine einzelne Maschine, aber ich sollte erwähnen, dass es Nachteile für Leute geben kann, die es in einer Laborsituation versuchen. (1) Erweiterte Dateisystemattribute sollten nicht als Grundlage für eine Sicherung verwendet werden. (2) Wenn Sie über ein Labor von Computern verfügen, die von einem Netzwerkmaster kopiert wurden, können die fs-Attribute ebenfalls verloren gehen. (3) Es wird nicht garantiert, dass / var / lib erhalten bleibt, z. B. bei einem Upgrade.
Hackerb9
3

Bearbeiten Sie die Datei /etc/lightdm/lightdm.conf ( gksu gedit /etc/lightdm/lightdm.conf) und fügen Sie eine Zeile wie die folgende hinzu:

default-user=sean_fitzpatrick
desgua
quelle
Danke, aber bisher hatte ich kein Glück - hat das bei Ihnen geklappt? Ich habe verschiedene Varianten ausprobiert, z. B. default-user = sean (mein Anmeldename), default-user = 1000 (meine UID) usw., aber bisher keine Änderung.
Sean Fitzpatrick
Ich habe es irgendwo gelesen, weiß nicht mehr wo. Ich benutze Lightdm noch nicht. Ich werde mehr recherchieren.
Desgua
OK, das scheint jetzt zu funktionieren - mit den neuesten Updates ist standardmäßig der richtige Benutzer ausgewählt. Ich bin mir nicht sicher, ob ich die Standardbenutzerzeile hinzugefügt habe oder ob ich mich jetzt an die letzte Anmeldung erinnere. (Ich denke, ich könnte versuchen, die Standardbenutzerzeile zu entfernen und zu sehen, was passiert - aber zumindest funktioniert es jetzt!)
Sean Fitzpatrick
2
Als kurze Notiz für alle, die dies lesen und 12.04 verwenden, hat diese Einstellung keine Auswirkung mehr und ist nicht mehr in der conf-Beispieldatei enthalten. Ich glaube, dass der Standard ab 12.04 der zuletzt angemeldete Benutzer ist.
mfisch
3

Die Option "Standardbenutzer" wurde aus lightdm entfernt. Warum? Niemand weiß. Es ist fünf Jahre her, dass diese Frage ursprünglich gestellt wurde und immer noch kaputt ist. Lightdm speichert jetzt den Status dessen, der sich zuletzt in einer versteckten Datei angemeldet hat:

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

Hier ist eine dreistufige Problemumgehung:

  1. Erstellen Sie ein Shell-Skript /usr/local/bin/lightdm-default-usermit folgendem Inhalt:

    #!/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. Mach es ausführbar: chmod 755 /usr/local/bin/lightdm-default-user

  3. Lassen Sie lightdm das Skript beim Start automatisch ausführen, /etc/lightdm/lightdm.confindem Sie eine Zeile im folgenden [SeatDefaults]Abschnitt bearbeiten und hinzufügen :

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

Das ist furchtbar hässlich, aber es ist im Moment leider die beste Lösung.

hackerb9
quelle
Ich vermute, dass dies aus Sicherheitsgründen geschehen ist (dh der Benutzername wird als vertrauliche Information betrachtet).
Scott Smith
Genau das habe ich gebraucht. Ich bin allerdings etwas anders vorgegangen. Das Shell-Skript ist eigentlich nicht notwendig. Siehe meine Antwort für eine Erklärung zum "Einfrieren" der stateDatei.
b_laoshi