Czy mogę ustawić domyślnego użytkownika w lightdm?

12

Bawiłem się Ubuntu Oneiric na moim netbooku (gdzie złamanie nie jest tak naprawdę problemem); Podoba mi się nowy ekran logowania lightdm, ale ma on jedną drobną irytację: oprócz mojego konta użytkownika istnieje inne konto do sporadycznego użytku przez moją dziewczynę, a jej konto użytkownika jest tym, na którym zawsze się skupia (prawdopodobnie dlatego, że jest to najpierw alfabetycznie) .

Wiem, jak to naprawić w gdm, ale nie znalazłem rozwiązania dla lightdm . Czy ktoś wie, jak to skonfigurować, aby moje konto było domyślnie podświetlone?

Sean Fitzpatrick
źródło

Odpowiedzi:

5

W /etc/lightdm/lightdm.conf

Idź w dół pliku, aż dojdziesz do:

# greeter-hide-users=false

Odznacz to, upewnij się, że wartość jest fałszywa.

Lizardx
źródło
2
Miałem wrażenie, że skomentowane opcje i wartości w /etc/lightdm/lightdm.conf wskazały wartości domyślne, ale tak nie jest. Tak więc linie bez komentarza mogą mieć wpływ. Również niektóre opcje wydają się obowiązywać przy wylogowywaniu / logowaniu, jednak opcja ta wymaga ponownego uruchomienia komputera.
PiersyP,
Istnieją trzy poziomy na to, ze pliki konfiguracyjne są odczytywane w tej kolejności (czyli ostatnie przesłonięcia poprzedni): pliki /usr/share/lightdm/lightdm.conf.d, pliki /etc/lightdm.conf.di /etc/lightdm.confSama. Wartości domyślne mogą zostać zastąpione wcześniej i później trzeba je zresetować.
Fiximan
To pomocne wyjaśnienie, dzięki.
Lizardx
4

Odpowiedź hackerb9 zrobiła to dla mnie, ale zamiast tworzyć skrypt, o wiele łatwiej jest po prostu „zamrozić” plik konfiguracyjny. Oto co robić:

  • Otwórz plik konfiguracyjny do edycji (zwróć uwagę, że w zależności od smaku używanego Ubuntu folder wewnątrz .cachemoże być nazywany czymś innym)
    sudo nano /var/lib/lightdm/.cache/lightdm-gtk-greeter/state
  • Edytuj następujący wiersz, aby odzwierciedlić domyślną nazwę konta użytkownika
    last-user=[DEFAULT-USER]
  • Być może dobrze byłoby również dodać do pliku komentarz stwierdzający, że jest on zablokowany i jak
  • Uruchom następujące polecenie, aby „zamrozić” plik, aby lightdm nie mógł go zmienić
    sudo chattr +i /var/lib/lightdm/.cache/lightdm-gtk-greeter/state

Teraz lightdm nie będzie w stanie zaktualizować tego pliku, gdy inny użytkownik zaloguje się, aby upewnić się, że domyślny użytkownik będzie zawsze wyświetlany na liście po załadowaniu ekranu logowania.

Jeśli to zadziała i zdecydujesz się na głosowanie w górę, proszę o głosowanie w górę postu hackerb9, a także pochodzi to z osobnej metody.

b_laoshi
źródło
1
Bardzo fajnie, @b_laoshi. Podoba mi się, że nie jesteś zależny od skryptu powłoki. Sugeruję umieszczenie komentarza w pliku stanu, aby przyszli administratorzy (lub ty) wiedzieli, dlaczego jest niezmienny. Myślę, że jest to dobre rozwiązanie na pojedynczej maszynie, ale powinienem wspomnieć, że ludzie mogą próbować tego w warunkach laboratoryjnych. (1) Nie należy polegać na rozszerzonych atrybutach systemu plików, aby zachować je na kopii zapasowej. (2) podobnie, jeśli masz laboratorium komputerów kopiowanych z wzorca sieciowego, atrybuty fs mogą zostać utracone. (3) / var / lib nie ma gwarancji zachowania, np. Przy aktualizacji.
hackerb9
3

Edytuj plik /etc/lightdm/lightdm.conf ( gksu gedit /etc/lightdm/lightdm.conf) i dodaj do niego taką linię:

default-user=sean_fitzpatrick
desgua
źródło
Dzięki, ale jak dotąd nie miałem szczęścia - czy to zadziałało dla ciebie? Próbowałem różnych odmian, np. Default-user = sean (moja nazwa logowania), default-user = 1000 (mój UID) itp., Ale jak dotąd bez zmian.
Sean Fitzpatrick
Gdzieś to przeczytałem, nie pamiętam gdzie. Nie korzystam jeszcze z lightdm. Zbadam więcej.
desgua
OK, wydaje się, że teraz działa - przy najnowszych aktualizacjach domyślnie wybierany jest właściwy użytkownik. Nie jestem pewien, czy wynika to z dodania przeze mnie linii domyślnego użytkownika, czy też pamięta ostatnie logowanie. (Chyba mógłbym spróbować usunąć domyślną linię użytkownika i zobaczyć, co się stanie - ale przynajmniej teraz działa!)
Sean Fitzpatrick
2
Jako krótka uwaga dla każdego, kto to czyta i używa 12.04, to ustawienie nie ma już żadnego efektu i nie znajduje się już w przykładowym pliku conf. Wierzę, że od 12.04 domyślnie będzie ostatnim zalogowanym użytkownikiem.
mfisch
3

Opcja „default-user” została usunięta z lightdm. Dlaczego? Nikt nie wie. Minęło pięć lat, odkąd pytanie zostało pierwotnie zadane i wciąż jest zepsute. Lightdm zapisuje teraz tutaj status ostatniego zalogowanego w ukrytym pliku:

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

Oto trzyetapowe obejście:

  1. Utwórz skrypt powłoki o nazwie /usr/local/bin/lightdm-default-userz następującą zawartością:

    #!/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. Spraw, by był wykonywalny: chmod 755 /usr/local/bin/lightdm-default-user

  3. Niech lightdm automatycznie uruchomi skrypt podczas uruchamiania, edytując /etc/lightdm/lightdm.confi dodając wiersz w [SeatDefaults]sekcji:

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

To jest okropnie brzydkie, ale obecnie jest to niestety najlepsze rozwiązanie.

hackerb9
źródło
Podejrzewam, że zrobiono to ze względów bezpieczeństwa (tj. Nazwa użytkownika jest uważana za poufną informację).
Scott Smith,
Właśnie tego potrzebowałem. Przyjąłem jednak nieco inne podejście. Skrypt powłoki nie jest w rzeczywistości konieczny. Zobacz moją odpowiedź na wyjaśnienie „zamrożenia” statepliku.
b_laoshi,