7

Какой самый простой и элегантный способ автоматически войти в сеанс fluxbox (без каких-либо действий, нажатия клавиш или чего-либо еще) при запуске системы от имени определенного пользователя. [Правка 2] Даже пользователю не требуется вход в оболочку, всегда предварительно настроенный пользователь должен войти в систему графически. [/ Редактировать 2]

Есть несколько настроек, где это приятно.

(Пожалуйста, оставьте замечания о том, следует ли это обсуждать вообще или лучше держать в тайне с другим вопросом: https://stackoverflow.com/questions/747008/is-it-good-to-make)

[РЕДАКТИРОВАТЬ 1]

Как я мог сразу заблокировать fluxbox (используя xtrlock), но в то же время продолжать запускать свои любимые приложения.

Результат будет таким: я включаю коробку, иду и завтракаю, когда возвращаюсь, я открываю коробку с моим паролем (принятым xtrlock), и все на месте.

Это невозможно или как это можно сделать, чтобы сломать эту схему в "edit 1", представьте, что кто-то нажимает ctrl-c в нужное время, когда запускается fluxbox или что-то еще возможно. Или этот человек может использовать мышь, чтобы щелкнуть где-нибудь в приложении, которое запускается до того, как xtrlock предотвращает это.

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

[/ РЕДАКТИРОВАТЬ 1]

7 ответов7

6

Я полагаю, вы используете менеджер входа GDM. В своем конфигурационном файле /etc/gdm/gdm.conf включите функцию автологина :

AutomaticLoginEnable=true
AutomaticLogin=karlthorwald

Вы также можете определить время ожидания для автоматического входа. Перезапустите gdm и вуаля!

4

Вы также можете использовать rungetty. Он разработан специально как замена getty, которая «запускает» что-то. Таким образом, вы можете установить его на startx, запустить fluxbox и все остальное.

3

Для Gentoo у вас есть файл /etc/conf.d/local.start для этого. В вашем дистрибутиве, вероятно, есть аналогичный файл, в котором вы можете настроить команды, которые будут выполняться при запуске.

Там вы добавляете эту строку:

su -c "startx" $user &

В домашнем каталоге $ user вы можете настроить .xinitrc для запуска fluxbox, добавив в последнюю строку:

exec startfluxbox

Если вам нужно запустить больше программ, добавьте их в .xinitrc. Обратите внимание, что exec startfluxbox должен запускаться как последний.

3

В debian меня есть скрипт (назовем его autologin.sh), который запускает X11:

su - kit -c "startx &"

Который в свою очередь устанавливается через update-rc.d:

sudo update-rc.d autologin.sh defaults 99 1

Я также отключаю все менеджеры входа, такие как {k,g,x}dm . Тогда в ~/.xinitrc меня будет:

$command 1 &
$command 2 &
x-window-manager
3

Хорошо, есть множество ответов для автоматического входа в систему - это функция kdm & gdm, или это можно сделать, явно запустив x вместо использования диспетчера отображения и т.д.

Что касается блокировки, есть файл, с которым вы можете играть:

/home/<user>/.fluxbox/startup

В начале файла добавьте следующие строки:

/usr/bin/xtrlock &
/usr/bin/sleep 5

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

Обратите внимание, что последняя строка этого файла запуска является строкой, которая фактически запускает fluxbox, поэтому она запускается до запуска любых приложений.

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

2

Из вашего вопроса я делаю вывод, что вы хотите запустить сеанс XWindow автоматически после того, как кто-то сделает логин с консоли.

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

#Start the XWindow session
startx
#Exit the shell once the XWIndow session is done
exit

Кроме того, вы всегда можете посмотреть, что всегда есть GDM (часто часть пакета gnome), KDM (часто часть пакета KDE) или XDM, которые могут автоматически запускать X во время загрузки с помощью сценария rc, а затем получить вы в ваш любимый оконный менеджер, как только вы вошли в систему. GDM и KDM предлагают способ автоматической регистрации пользователя, если это то, что вы ищете. GDM, KDM и XDM сравнимы с окном входа в Mac OS X или окном входа в Microsoft Windows.

1

Используйте файл /etc/inittab . Этот файл порождает оболочки входа в систему и, возможно, менеджер отображения (например, [GK] DM), когда ваш компьютер переходит на уровень выполнения 5 (обычно).

Строка оболочки для входа в систему по умолчанию выглядит следующим образом:

c1:2345:respawn:/sbin/agetty -8 38400 vc/1 linux

Тем не менее, с agetty, вы можете указать свою собственную программу входа в систему. Итак, замените что-то вроде этого

c1:2345:respawn:/sbin/agetty -n -l /usr/local/sbin/auto_login 38400 vc/1 linux

И тогда auto_login.c

#include <unistd.h>
int main() {
       execlp( "login", "login", "-f", "your_user_name_here", 0);
}

Теперь используйте скрипт запуска оболочки, чтобы запустить X так, как вы хотите.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .