Чи можу я встановити користувача за замовчуванням у lightdm?


12

Я грав у Ubuntu Oneiric на своєму нетбуку (де поломка насправді не викликає занепокоєння); Мені подобається новий екран входу в lightdm, але він має одну незначну неприємність: окрім мого власного облікового запису користувача, є ще один обліковий запис для періодичного використання моєю дівчиною, а її обліковий запис - той, на який завжди зосереджено (імовірно, тому, що це спочатку в алфавітному порядку) .

Я знаю, як це виправити в gdm, але не знайшов рішення для lightdm . Хтось знає, як його налаштувати, щоб мій обліковий запис було виділено за замовчуванням?

Відповіді:


5

В /etc/lightdm/lightdm.conf

Переходьте вниз по файлу, поки не досягнете:

# greeter-hide-users=false

Скасуйте його, переконайтесь, що значення неправдиве.


2
У мене склалося враження, що коментовані параметри та значення в /etc/lightdm/lightdm.conf вказують значення за замовчуванням, але це не так. Тому просто не коментуючи рядки можуть мати ефект. Також деякі параметри, як видається, діють під час виходу / входу, але, здається, ця опція вимагає перезавантаження, щоб набути чинності.
PiersyP

Є три рівні для цього, з файлами зчитуються в зазначеному порядку (тобто останні скасовують попередній): файли /usr/share/lightdm/lightdm.conf.d, файли /etc/lightdm.conf.dі /etc/lightdm.confсамі. Можливості за замовчуванням можуть бути відмінені раніше і їх потрібно буде скинути пізніше.
Фіксиман

Це корисне уточнення, дякую.
Лізардкс

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, оскільки це є окремим методом.


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

Дякую, але поки що мені не пощастило - це спрацювало на тебе? Я спробував різні варіанти, наприклад, default-user = sean (моє ім’я для входу в систему), default-user = 1000 (мій UID) тощо, але поки що немає змін.
Шон Фіцпатрік

Я десь читав, не пам'ятаю, де. Я ще не використовую lightdm. Я буду більше досліджувати.
desgua

Гаразд, це, здається, працює зараз - з останніми оновленнями за замовчуванням вибирається правильний користувач. Не впевнений, чи це пов’язано з тим, що я додаю рядок користувача за замовчуванням або якщо він запам'ятовує останнє вхід. (Я думаю, я міг би спробувати видалити лінію за замовчуванням користувача та побачити, що станеться - але принаймні це працює зараз!)
Шон Фіцпатрік

2
Як швидка примітка для тих, хто читає це та використовує 12.04, це налаштування більше не має жодного ефекту і більше не є у прикладі конф-файлу. Я вважаю, що станом на 12.04 за замовчуванням буде останній користувач, який увійшов.
mfisch

3

Параметр "користувач за замовчуванням" видалено з 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
    

Це жахливо некрасиво, але, на жаль, найкраще рішення на даний момент.


Я підозрюю, що це було зроблено з міркувань безпеки (тобто ім'я користувача вважається конфіденційною інформацією).
Скотт Сміт

Це саме те, що мені було потрібно. Хоча я взяв дещо інший підхід. Сценарій оболонки насправді не потрібен. Дивіться мою відповідь щодо пояснення "заморожування" stateфайлу.
b_laoshi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.