Могу ли я установить пользователя по умолчанию в lightdm?

12

Я играл с Ubuntu Oneiric на своем нетбуке (где поломка на самом деле не проблема); Мне нравится новый экран входа в систему lightdm, но у него есть одно небольшое раздражение: в дополнение к моей собственной учетной записи пользователя есть еще одна учетная запись для случайного использования моей девушкой, и ее учетная запись пользователя всегда предназначена (предположительно, потому что она сначала в алфавитном порядке) ,

Я знаю, как это исправить в gdm, но я не нашел решения для lightdm . Кто-нибудь знает, как его настроить, чтобы моя учетная запись выделялась по умолчанию?

Шон Фицпатрик
источник

Ответы:

5

В /etc/lightdm/lightdm.conf

Идите вниз по файлу, пока не доберетесь до:

# greeter-hide-users=false

Снимите комментарий, убедитесь, что значение равно false.

Lizardx
источник
2
У меня сложилось впечатление, что закомментированные параметры и значения в /etc/lightdm/lightdm.conf указывают значения по умолчанию, но это не так. Так что просто не комментирующие строки могут иметь эффект. Также некоторые параметры, кажется, вступают в силу при выходе из системы / входе в систему, однако эта опция требует перезагрузки для вступления в силу.
PiersyP
Для этого есть три уровня: файлы конфигурации читаются в этом порядке (т.е. последние переопределяют предыдущие): файлы в /usr/share/lightdm/lightdm.conf.d, файлы в /etc/lightdm.conf.dи /etc/lightdm.confсамих себя. Значения по умолчанию могут быть переопределены ранее и должны быть сброшены позже.
Fiximan
Это полезное уточнение, спасибо.
Lizardx
4

Ответ hackerb9 сделал это для меня, но вместо создания скрипта гораздо проще просто «заморозить» файл конфигурации. Вот что нужно сделать:

  • Откройте файл конфигурации для редактирования (обратите внимание, что в зависимости от используемой вами версии Ubuntu, папка внутри .cacheможет называться как-то иначе)
    sudo nano /var/lib/lightdm/.cache/lightdm-gtk-greeter/state
  • Измените следующую строку, чтобы отразить имя учетной записи пользователя по умолчанию
    last-user=[DEFAULT-USER]
  • Возможно, было бы хорошо также добавить комментарий к файлу, сообщая, что он заблокирован и как
  • Запустите следующую команду, чтобы «заморозить» файл, чтобы он не мог быть изменен с помощью lightdm
    sudo chattr +i /var/lib/lightdm/.cache/lightdm-gtk-greeter/state

Теперь lightdm не сможет обновить этот файл, когда другой пользователь войдет в систему, гарантируя, что ваш пользователь по умолчанию всегда будет в списке при загрузке экрана входа в систему.

Если это работает для вас, и вы решили проголосовать, пожалуйста, проголосуйте за пост hackerb9, так как он получен отдельным методом.

b_laoshi
источник
1
Очень мило, @b_laoshi. Мне нравится, что вы не зависите от сценария оболочки. Я предлагаю добавить комментарий в файл состояния, чтобы будущие системные администраторы (или вы сами) знали, почему он неизменен. Я думаю, что это хорошее решение для одной машины, но я должен отметить, что у людей, которые пробуют это в лабораторных условиях, могут быть недостатки. (1) расширенные атрибуты файловой системы не должны использоваться для сохранения в резервной копии. (2) аналогично, если у вас есть лаборатория компьютеров, скопированных с сетевого мастера, атрибуты fs могут быть потеряны. (3) / var / lib не гарантируется, например, при обновлении.
hackerb9
3

Отредактируйте файл /etc/lightdm/lightdm.conf ( gksu gedit /etc/lightdm/lightdm.conf) и добавьте в него следующую строку:

default-user=sean_fitzpatrick
desgua
источник
Спасибо, но пока мне не повезло - это сработало для вас? Я пробовал разные варианты, например default-user = sean (мое имя пользователя), default-user = 1000 (мой UID) и т. Д., Но пока без изменений.
Шон Фицпатрик
Я где-то читал, не помню где. Я еще не использую lightdm. Я буду исследовать больше.
Desgua
ОК, похоже, теперь это работает - с последними обновлениями по умолчанию выбран правильный пользователь. Не уверен, что это из-за того, что я добавил строку пользователя по умолчанию или теперь он запоминает последний логин. (Полагаю, я мог бы попытаться удалить строку пользователя по умолчанию и посмотреть, что произойдет - но, по крайней мере, сейчас это работает!)
Шон Фицпатрик
2
Как быстрое примечание для тех, кто читает это и использует 12.04, этот параметр больше не имеет никакого эффекта и больше не находится в файле примера примера. Я считаю, что по состоянию на 12.04 по умолчанию будет последний зарегистрированный пользователь.
mfisch
3

Параметр «default-user» был удален из lightdm. Почему? Никто не знает. Прошло пять лет с тех пор, как этот вопрос был задан изначально, и он все еще не работает. Lightdm теперь сохраняет состояние тех, кто последний раз заходил в скрытый файл здесь:

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

Итак, вот три шага:

  1. Создайте сценарий оболочки, вызываемый /usr/local/bin/lightdm-default-userсо следующим содержимым:

    #!/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. Сделайте его исполняемым: chmod 755 /usr/local/bin/lightdm-default-user

  3. Пусть lightdm автоматически запустит скрипт при запуске, отредактировав /etc/lightdm/lightdm.confи добавив строку в [SeatDefaults]раздел:

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

Это ужасно уродливо, но, к сожалению, это лучшее решение на данный момент.

hackerb9
источник
Я подозреваю, что это было сделано из соображений безопасности (т. Е. Имя пользователя считается конфиденциальной информацией).
Скотт Смит
Это было именно то, что мне было нужно. Я взял немного другой подход, хотя. Сценарий оболочки на самом деле не нужен. Смотрите мой ответ для объяснения "замораживания" stateфайла.
b_laoshi