Недавно, я решил снести со своего нетбука archlinux, который на мой взгляд, солидно на нём глючил, и поставить на него gentoo. Мне просто жуть как не хотелось ставить slim или какой либо другой логин менеджер, но и без них было весьма туго, ибо я параноик. Мало ли что: достаточно нажать ctrl-alt-f1 и ctrl-c для того чтобы убить X сессию, и получить шелл. Конечно, прав рута не будет, но и без них можно было дел натворить :) Но сейчас не об этом. Как я уже написал, ставить slim или какой либо другой login manager, я не хотел. Поэтому после большого количества упоминаний о qingy, было решено попробовать сие чудо.
Qingy это замена для стандартного agetty. Причём, qingy использует весь потенциал framebuffer'а, благодаря чему ещё и выглядит приятно. Кроме того, есть ещё пара полезных и приятных мелочей (а может это не мелочи вовсе), как например удобный запуск нескольких X сессий. Выглядит это примерно так: когда вы загружаетесь, перед вами появляется agetty на первой tty консоли, который предлагает ввести логин и пароль. После их ввода, вы попадаете в свой терминал, и оттуда, уже делаете необходимые операции или запускаете X сессию которая занимает 7 консоль непосредственно для X сессии, и первую консоль, из который был произведён их запуск. В случае с qingy, после ввода пароля, можно либо запустить сразу X сессию, либо попасть в терминал. Причём, если «запустить иксы», то они так и останутся на первом терминале. На мой взгляд, это крайне удобно :) Можно нажать ctrl-alt-f2, и зайти под другим пользователем, или запустить другой wm например.
Чтобы использовать qingy, нужно его для начала поставить:
emerge qingy qingy-themes
После чего, нужно открыть с правами супер пользователя файл /etc/inittab, и заменить в нём строки:
# TERMINALS
c1:12345:respawn:/sbin/agetty 38400 tty1 linux
c2:2345:respawn:/sbin/agetty 38400 tty2 linux
c3:2345:respawn:/sbin/agetty 38400 tty3 linux
c4:2345:respawn:/sbin/agetty 38400 tty4 linux
c5:2345:respawn:/sbin/agetty 38400 tty5 linux
c6:2345:respawn:/sbin/agetty 38400 tty6 linux
На такие:
c1:12345:respawn:/sbin/qingy tty1
c2:2345:respawn:/sbin/qingy tty2
c3:2345:respawn:/sbin/qingy tty3
c4:2345:respawn:/sbin/qingy tty4
c5:2345:respawn:/sbin/qingy tty5
# Шестую консоль оставляем с agetty на всякий случай ;)
c6:2345:respawn:/sbin/agetty 38400 tty6 linux
После всех этих нехитрых манипуляций, после следующий перезагрузки везде будет qingy вместо agetty, и всё должно прекрасно работать.
Если говорить о красоте, то для framebuffer'а, qingy выглядит просто прекрасно, если не божественно =] Скриншот выкладывать не буду, ибо у меня «дефолтная» тема под названием Gentoo. Отправлю в галерею тем, там можно посмотреть внимательнее - ссылко!. Думаю, там многие найдут тему, которая им по душе. Так же, в qingy есть аскетичный текстовый интерфейс. Кто-то, возможно, предпочтёт именно его. Думаю, делать скриншот обычного предложения ввода пароля, и списка с доступными опциями (запуск X сессии, в терминал и прочее) не требуется :)
Темы qingy находятся в /usr/share/qingy/themes.
Конфиг qingy находится в /etc/qingy/config, и он хорошо документирован, поэтому не вижу смысла пересказывать все его опции.
Кстати, с помощью qingy, можно так же настроить и автовход, и запуск X сессии, что тоже крайне удобно, и заметно безопаснее других способов «автоматического запуска иксов».
Enjoy ;)
Похожие записи:

А можно поподробнее про Ctrl+Alt+Del и попадание в шелл? Как я понимаю, опасение вызывает попадание в шелл постороннего человека, получившего физический доступ к компьютеру. Но ведь он может запустить шелл и под иксами! А может и не получить шелла даже при выходе из Х-сессии - просто запускать иксы коммандой `startx; exit`.
Но qingy безусловно красивее, чем agetty :)
[Ответить]
bosha Отвечает:
Март 1st, 2010 at 08:57
Предположим, что ты оставил нетбук на работе, и отошёл в туалет. У меня стоит xscreensaver который блокирует экран через пару минут, но его легко обойти нажав ctrl-alt-f1, и попав в терминал с иксами, откуда их можно убить. и получить шелл. Вот такой вот я, параноик :)
[Ответить]
void Отвечает:
Март 1st, 2010 at 10:38
Ну ок.
А этот способ с "startx; exit" в ~/.bashrc можно как-то обойти, как считаешь? Мне кажется, что да, но пока не придумал как...
[Ответить]
bosha Отвечает:
Март 1st, 2010 at 10:39
В теории можно всё, но как, я не знаю.
[Ответить]
Ссылка | Март 1st, 2010 at 03:30
Во, как раз в чьем-то блоге в твоих ссылках обнаружил пост в тему:
http://thenixer.blogspot.com/2009/11/my-radical-ascetic-replacement-for-slim.html
Только в его варианте я получу-таки шелл, завершив процесс startx аварийно, потому что exit выполнится только при нормальном завершении startx.
[Ответить]
bosha Отвечает:
Март 1st, 2010 at 08:57
Ага. Это даже мой знакомый :)
[Ответить]
Ссылка | Март 1st, 2010 at 03:37
По-моему лучше делать в .bash_profile так:
if [ $(tty) == 'dev/tty1' ]
then
startx
vlock
fi
Вместо vlock можно exit, но так ИМХО логичнее: умерли иксы - сиди и разбирайся почему :) Проблем с безопасностью не вижу
[Ответить]
bosha Отвечает:
Март 2nd, 2010 at 17:38
А если не нужен автологин? Убивать иксы и запускать снова? По мне, так не очень удобно. Так что это не лучше. а я бы сказал что совсем другое :)
[Ответить]
Ссылка | Март 2nd, 2010 at 17:33
У меня такой вопрос:
Поставил,исправил,но когда
Вводишь логин,то получается как эхо,то есть
user пишется вот так uusseerr
соответственно и пароль также,не подскажите как
исправить это
[Ответить]
bosha Отвечает:
Март 12th, 2010 at 21:48
А режим вывода текстовый или framebuffer? Есть предположение, что графическая подсистема в этом режиме, не тянет. Либо разрешение высокое либо ещё что-то. Т.е. мне кажется, что это простые тормоза. Надо попробовать сменить разрешение в консоли..
[Ответить]
Damon Отвечает:
Март 20th, 2010 at 16:57
> user пишется вот так uusseerr
Была такая же ситуация, упарился решение искать, нашел здесь -- http://wiki.archlinux.org/index.php/Qingy
"Qingy (and quite possibly other DirectFB applicationss) has some issues using Synaptics touchpad. Also the keyboard can behave strangely (like if each keys were pressed twice).
This can be solved by adding:
disable-module=linux_input
to /etc/directfbrc. If the file does not exist, create it."
Работает, однако...
Единственное дополнение: поскольку я сам DirectFB собирал, указав --prefix=/usr, данный файл у меня, соответственно, пришлось создавать в /usr/etc, т.ч. внимательнее.
[Ответить]
Ссылка | Март 12th, 2010 at 21:10
Вы думаете,что это
kernel /boot/vmlinuz26 root=/dev/sda2 ro vga=773
Не тянет,это установлено в grub
[Ответить]
bosha Отвечает:
Март 15th, 2010 at 00:45
Возможно. Попробуйте удалить vga=773. Если не поможет - можно всегда дописать снова.
Если это не поможет, то я даже не могу предположить в какую сторону смотреть..
[Ответить]
Ссылка | Март 14th, 2010 at 17:10
Хм... Нда... Дожили...
man nohup для решения проблемы штатными средствами
[===cut from here===]
login: user
paswword:
[user] $ nohup startx &
[user] $ CTRL-D
login:
[=== cut to here===]
Всего-то навсего....
[Ответить]
bosha Отвечает:
Март 18th, 2010 at 11:29
Нет, ну. Я не понимаю, все читают начало? :)
Qingy несколько больше, чем просто способ обезопасить шелл от посторонних ;)
[Ответить]
Ссылка | Март 18th, 2010 at 11:28
в .bash_profile
добавляете в конец exec startx и при любом раскладе "хакер" попадет лишь в голую консоль с приветствием ввести логин
[Ответить]
bosha Отвечает:
Март 21st, 2010 at 09:52
Прям чуть чуть выше, написал как раз на эту тему. Могу повториться :) Qingy, это большее, чем просто способ обезопасить шелл =)
[Ответить]
Ссылка | Март 21st, 2010 at 01:31
[18:40:44]#pts/3(1)% cat .zlogin
if [ -z $SSH_CLIENT ]; then
# local login
if [ -z `pgrep xinit` ]; then
echo -n "start x11 in ";
for q in 3 2 1; do
echo -n ${q}"... "
sleep 1
done
echo ""
sh -c 'sh -c "exec /usr/bin/env xinit" &'
clear
echo -n `date`
logout
fi
fi
после авторизации ожидает 3 секунды (если Xorg не запущен) и запускает Xorg, после чего тут же логаутится
$SSH_CLIENT - проверка на ssh-сессию, неприятно когда по удаленке заходиш на бук, и внезапно стартуют иксы :)
[Ответить]
bosha Отвечает:
Март 21st, 2010 at 12:53
Тоже полезно, когда нужен просто автостарт исксов =)
[Ответить]
Ссылка | Март 21st, 2010 at 12:43
Я хотел бы в каждом терминале выводить отдельное приложение, чтобы смотреть его логи отдельно от других.
Как это реализовать? и Нужно ли пользоваться автологином для этого?
[Ответить]
Ссылка | Октябрь 18th, 2011 at 12:57