21 мар. 2007 г.

прощай xdm !

Предпосылки:
  • Таскать *dm (со всеми зависимостями) ради login'а, после чего *dm весит в памяти, но эффективно ничего не выполняет
  • При каждом login'е в консоли надоело писать startx, тем более, если кто-то уже занял нулевую графическую консоль.
  • Необходимо обеспечить должную безопасность.
По мотивам TIP Fix The Login Security Hole
написал следующий скрипт, который добавляем в конец ~/.bash_profile :
if [ "$TERM" = "linux" ]; then
SERVER=0;
for((a=0;$a<99;a=$a+1)){
# search for 1st free X server
if [ ! -S /tmp/.X11-unix/X$a ]; then
SERVER=$a;
break;
fi
}
exec nohup startx -- :$SERVER; disown; exit;
fi

В итоге имеем:
  • никаких *dm
  • переключение в консоль, например, Ctrl+Shift+F1 и Ctrl+C приведёт к убийству X'ов, но доступ к пользовательской консоли не будет получен - автоматический logout
  • убийство X'ов через Ctrl+Alt+Backspace так же автоматический logout.

Комментариев нет: