Как я могу отобразить сообщение на экране входа?

10

В некоторых случаях было бы полезно получить короткое текстовое уведомление перед входом в систему, чтобы у меня была возможность отказаться от входа после просмотра сообщения.

Есть ли способ отобразить уведомление на графическом экране входа?

ændrük
источник
Вы хотите, чтобы сообщение появилось до входа? Или сразу после того, как вы ввели свое имя пользователя и пароль?
Элия ​​Каган
1
Что за уведомления? Я имею в виду, что до того, как вы войдете в систему, ни одно приложение, такое как IM-клиент, еще не запущено. Я могу думать только о состоянии батареи (мобильный ПК) и профилях сетевого менеджера системного уровня. И в каком контексте это? Чистый пользователь или разработка приложения?
gertvdijk
Я заинтересован в общем ответе; У меня нет особых требований к времени сообщения или инструментам, используемым для создания сообщения.
rndrük
Вы имеете в виду что-то вроде, экран входа в систему, а затем ваше сообщение. Нет необходимости входить в систему?
13
@snow "до входа в систему" <-
gertvdijk

Ответы:

3

Я понимаю, что это запоздалый ответ (как, например, с опозданием на годы), но я подумал, что мог бы пойти дальше и поставить что-то здесь для тех, у кого есть такие же проблемы. Я вижу эту проблему все время. Это всего лишь один из способов сделать это, который легко написать и развернуть. Имейте в виду, что это не элегантное решение, похожее на это: Как создать всплывающий баннер перед входом в Lightdm?

  1. Создайте файл и назовите его как хотите, например: anyYouWant
  2. Поместите в этот файл следующее (естественно, заменяя текст баннера):

    bannerText="This is my banner and you will love it.  Worship it!"
    
    zenity --question --title="Pirate Ninja Banner" \
    --text=$bannerText" --no-wrap --width=800 --height=200
    
    until [[ $? = '0' ]]: do
       zenity --question --title="Pirate Ninja Banner" \
       --text=$bannerText" --no-wrap --width=800 --height=200
    done
    
  3. Отрегулируйте ширину и высоту по своему усмотрению.

    3a. Идея здесь заключается в том, что когда в сообщении входа отображается сообщение, что пользователь не может продолжить работу, пока он не согласится с условиями, таким образом, оно повторяется до тех пор, пока не будет выбрано «да».

ПРИМЕЧАНИЕ (потому что я не знал этого раньше): zenity --list может возвращать true да false false (логические значения), zenity --question возвращает выход 0,1

  1. Сделайте ваш файл исполняемым:

    sudo chmod +x anythingYouWant
    
  2. Поместите это куда-нибудь - я просто вставил это в / usr / bin

    sudo mv anythingYouWant /usr/bin
    

----------- LightDM -----------------------

  1. Если вы используете lightdm, вам нужно изменить файл lightdm.conf. Когда я пошел делать это в первый раз, там не было lightdm.conf T_T. Так что, если это не так, ничего страшного, иди и сделай копию:

    sudo cp /usr/share/doc/lightdm/lightdm.conf /etc/lightdm/
    
  2. Если это не сработало, возможно, файл в / usr / share / doc / lightdm / заархивирован, так что сделайте:

    sudo gzip -d /usr/share/doc/lightdm/lightdm.conf.gz
    

    7а. Затем переместите файл в / etc / lightdm /

  3. Откройте файл lightdm.conf (который теперь должен находиться в / etc / lightdm /) и добавьте следующее ниже раздела, в котором говорится [SeatDefaults], например:

    [SeatDefaults]
    greeter-setup-script=/path/to/your/loginMessage
    

    8а. Где / path / to / your / loginMessage - это место, куда вы положили исполняемый файл, созданный ранее. Я поместил мой в / usr / bin, так что мой выглядит так:

    [SeatDefaults]
    greeter-setup-script=/usr/bin/loginmessage
    

    8б. Сохранить файл

  4. Это должно примерно сделать это для Lightdm. Вы также можете просто создать свой собственный файл lightdm.conf и вставить в него все вышеперечисленное.

    9а. Перезагружать.

----------- ------------------- GDM

  1. Я тестировал этот всплывающий «цикл» на CenOS 7 и Ubuntu 14.04 с GDM. Дело в том, что lightdm.conf не очень помогает в случае с GDM, не так ли?

  2. Ну, есть работа, которая работает для меня (пока).

  3. Откройте файл / etc / gdm / Init / Default

    sudo vim /etc/gdm/Init/Default
    
  4. Перейти в конец файла.

  5. Прямо над выходом 0 поставьте:

    exec /path/to/your/message
    

    14а. Где / path / to / your / message - это путь к вашему отличному сообщению для входа. Когда все сделано, это должно выглядеть примерно так:

    fi
    exec /usr/bin/loginmessage
    exit 0
    

    14b. «Fi» и «exit 0» уже есть, вы просто помещаете его в «exec / path / to / your / message».

    14с. Сохраните и перезагрузите.

  6. Вся перезагрузка, вероятно, не нужна. Я тестирую этот материал в vm's, так что проще просто отскочить от машины.

  7. Если есть лучшие способы сделать это, я все уши / глаза. Я знаю, что gconf прекрасно работает в CentOS 6.x. Я знаю, что dconf работает в CentOS 7, но я не получил то, что хотел. Ничто из gconf не работало для меня в Ubuntu, даже после установки GDM и перенастройки <- может быть, только я.

Натан Пик
источник
2

Возможно, не удастся отобразить сообщение непосредственно на экране входа в систему. Но вы можете отправить сообщение до входа в систему. Добавить в /etc/lightdm/lightdm.conf:

greeter-setup-script=xmessage -button ok -default ok -center "Hello world"

Будьте осторожны, так как неправильная опция в этом файле может нарушить процедуру загрузки.
Мышь будет недоступна на этом этапе, но вы сможете закрыть сообщение с помощью Enter. xmessageможет прочитать текст сообщения из файла или может иметь пользовательское время ожидания. Проверьте его man-страницу для дополнительных опций.
Вы можете проверить https://wiki.ubuntu.com/LightDM для получения дополнительной информации о lightdm.confнастройке приветствия.

whtyger
источник
-1

Вы можете изменить баннер входа в систему, чтобы показать предупреждение, которое вы хотите показать. Для более подробной информации, вы можете взглянуть на ссылку ниже: -

http://www.howtogeek.com/howto/ubuntu/change-ssh-welcome-banner-on-ubuntu/

Рахул
источник
1
Я думаю, что ОП означало графический экран входа в систему.
zwets