LINUX.ORG.RU

Скрипт входа в систему.

 , ,


1

2

Доброе время суток всем читающим! Только недавно вступил в ряды пользователей Линукс.

После очередного кривого самообновления win10 (не смотря на все попытки эти обновления отрубить), понял что так жить нельзя и поставил Debian. Сначала с кедами - но свистоперделки красивы только первые 10 минут, потом этот жир начинает раздражать. Скачал образ с LXQT - после легкой настройки это почти то что нужно, система летает, но хотелось подойти радикально. Минимум лишнего, максимум функциональности. Поэтому установил чистый debian, поднял из консоли вайфай, иксы и i3. Далее поставил набор программ, настроил конфиги... И практически обрел счастье. Ломает только каждый раз при запуске системы вводить логин, пароль и $startx. Пробовал в качестве логин-менеджера lightDM, но он показался мне каким то излишеством - загружался дольше, чем сам i3 WM, да и визуально мышкоориентированный гуй dm плохо сочетается с последующим нырянием в аскетичный тайловый wm.

Собственно задача выглядит таким образом - подскажите пожалуйста, как должен выглядеть скрипт, который после запуска системы будет сам вводить логин пользователя (пользователь один), далее запрашивать ручной ввод пароля и после правильного ввода - автоматически давать команду $starx на запуск иксов? И как организовать его исполнение до начала сессии? Что бы процесс выглядел таким образом: нажатие клавиши включения > ввод пароля и enter > начало работы. Хочу получить своего рода одноклеточный логин-менеджер на bash с одной функцией.

Собственно задача выглядит таким образом - подскажите пожалуйста, как должен выглядеть скрипт, который после запуска с системы будет сам вводить логин пользователя (пользователь один)

Создаёшь файл /etc/systemd/system/getty@tty1.service.d/override.conf со следующим содержанием:

[Service]
ExecStart=-/sbin/agetty --noclear -a *имя пользователя* %I $TERM

автоматически давать команду $starx на запуск иксов?

В ~/.bash_profile (в случае с zsh ~/.zprofile) добавь следующие строки:

if [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
   exec startx
fi

najlus ★★★★★ ()

в ~/.bashrc добавляем

if [[if [[ -z $DISPLAY ]] && [[ $(tty) = /dev/tty1 ]]; then exec startx;
в ~/.xinitrc
exec ck-launch-session wm_programm_start_name
при заходе на первую консоль будет запущен X сервер

Silerus ★★★ ()
Последнее исправление: Silerus (всего исправлений: 1)

имхо отказываться от нормального логинменеджера в пользу костылей это уже черезчур. Не нравиться lightdm есть еще быстрее sddm. Если уж начали юзать кде и это было приемлемо то удобный sddm вообще не должен быть в тягость, кроме всего прочего он еще и красивый. Бросаетесь в крайности

jtad ()
Ответ на: комментарий от najlus

Начал с более мне понятного второго пункта, добавил строчки (правда в моем случае было просто .profile). Перезагрузился - да, после ввода логина и пароля сразу запускаются иксы и i3.

Первый пункт, с созданием сервиса с agetty каюсь, был мне не очень понятен, и я вслепую сделал всё по инструкциям. После перезагрузки система решила показать только строчки загрузки системы вроде

[ ОК ] Started Disk Manager 
[ ОК ] Started Network Manager
[ OK ] Started ...
итд

и все, далее только мигает курсор и приглашения на залогинивание нет. После нескольких минут ALT+CTRL+F2 вывели меня на стандартное предложение ввести логин и пароль, залогинился и удалил созданную папку с сервисом. После ребута всё заработало как раньше. Что ж, буду разбираться, как эта строчка для systemd должна была сработать. Как я уже понял, подход «делать по инструкции без понимания» в линуксе не работает. Но всё равно благодарю, теперь буду копать в этом направлении!

zanrad ()
Ответ на: комментарий от zanrad

Первый пункт, с созданием сервиса с agetty каюсь, был мне не очень понятен, и я вслепую сделал всё по инструкциям.

Вот как у меня сделано (стырено с archwiki)

[Service]
ExecStart=
ExecStart=-/usr/bin/agetty --autologin **user** --noclear %I $TERM

Но в моём случае вход происходит без ввода пароля.

Fizzika ()
Ответ на: комментарий от jtad

начали юзать кде и это было приемлемо

KDE был выбран в надежде на самую проработанную и отполированную DE для первоначального знакомства с принципами работы в Линуксе, тк я не был уверен в своих способностях поднять голую систему из консоли с необходимым набором программ. Но KDE оказался прямой противоположностью того, чего я ждал от операционной системы. LXQT оказался гораздо ближе как интерфейсом, так и набором программ, и если бы я изначально не заглядывался на тайлинговые wm - остался бы на нем.

Бросаетесь в крайности

Соглашусь, но одним из желаний перехода с винды - это желание понимать как работает ОС, и полная прозрачность её действий. А чистая установка без DE способствует лучшему пониманию что для чего существует. Ну и чем меньше лишнего - тем проще в этом разобраться и содержать в чистоте =).

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

Поспорю, я хоть пока и нуб в bash, но по мне лаконичный скрипт в несколько строчек вроде

$автоматически ввести *юзернейм* в логин
$вывести "Введите пароль:"
$принять пароль
$начать сессию и запустить иксы

должен быть всяко изящнее и менее костылен, чем отдельная программа, с лишними для меня кнопками, обоями, функциями выбора пользователей,wm. Особенно учитывая что локскрин и менеджер входа, в отличии от винды, тут совершенно разные утилиты.

Пытался посмотреть в сторону консольных логин-менеджеров, вроде CDM, но там ориентация в первую очередь на выбор wm, и их установка требует определенного понимания, а не простого «apt install», так что я решил раз уж ковыряться, то самописный «костыль» был бы лучше всего. Но прошу не судить строго мои загоны, это лишь моё нездоровое стремление в «минимализм».

zanrad ()
Ответ на: комментарий от Fizzika

Вход без ввода пароля не хотелось бы, как из соображений сетевой безопасности (хотя понятия не имею снижает ли автологин эту безопасность), так и из соображений бытовых - не хочу что бы в мой ноутбук мог залезть кто угодно.

Как вариант решения задачи, это включить автологин через agetty, а после в тот же .profile или конфиг автозапуска i3 уже запихать какой нибудь скрипт или локскрин (тот же прекрасный i3lock), которые запускались бы после автологирования юзера. Хотя это уже да, выглядит костыльненько.

В общем надо читать мануалы и экспериментировать

zanrad ()
Ответ на: комментарий от zanrad

Ну я даже не знаю, можешь ли ты добиться действительно полного понимания в современных системах и приложениях, странное желание ИМХО.

Deleted ()
Ответ на: комментарий от Deleted

Ну с полным пониманием я конечно слишком громко выразился, скорее хочется иметь более менее контроль над тем что происходит в ОС и гибко её конфигурировать под конкретные нужды и устройства. Знать где какие файлы и для чего, что нужно подправить, что бы вот это заработало вот так, а не вот так… итд.

Просто интерес, и желание работать в чистой опрятной системе. Возможно иногда баловаться со штуками вроде Onion Omega2 и пр.

zanrad ()
Ответ на: комментарий от zanrad

далее только мигает курсор и приглашения на залогинивание нет.

Пароль в этом месте вводить пробовал?

najlus ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.