Статья написана для учителей информатики, которым надоело заниматься постоянным восстановлением порядка в классе и на ученических компьютерах. Для тех, кому дорого время и здоровье.
Нам понадобится:
1. Установить на все компьютеры класса ОС Linux. Дистрибьютив выбирайте на свой вкус.
2. Установить на все ученические компьютеры пакеты: openbox, tint2, pcmanfm, gxkb, x11vnc (сервер и клиент), vlc
3. Кроме этого на учительском компьютере необходимо установить программу RuleUser, подробнее о ней будет рассказано ниже.
4. Создать на ученических компьютерах пользователя guest.
5. Установить и настроить на всех компьютерах пакет sshd.
6. Скопировать приложенные конфигурационные файлы на ученические и учительский компьютеры.
Примечание. В этом примере компьютер учителя имеет ip адрес: 192.168.1.100/24. Ученические компьютеры имеют адреса, начиная с 192.168.1.101/24.
1. Исключаем возможность изменения настроек рабочего стола ученических компьютеров.
Для этого используем связку openbox (для управления окнами) + tint2 (панель задач) + pcmanfm (для отображения иконок рабочего стола) + gxkb (для отображения статуса языка ввода).
Иконки рабочего стола ученических компьютеров будут находится на машине учителя. Таким образом учитель будет контр��лировать то, что доступно ученикам. На ученических же машинах необходимо добавить в файл /etc/fstab строку для монтирования nfs папки с машины учителя:
2. Делаем возможным переключение языка ввода средствами X сервера, для этого на ученических компьютерах создаём файл /etc/X11/xorg.conf.d/10-keymap.conf со следующим содержимым:
Переключение по Ctrl+Shift.
3. Скачиваем конфиги для: openbox, tint2, pcmanfm, gxkb. Копируем их куда следует. Обычно это ~/.config
Обращаю ваше внимание, что в конфигах openbox есть скрипт autostart, через который запускается x11vnc сервер. А так же там есть скрипт обновления рабочего стола refresh, который запускается по нажатии на клавишу F7. На всякий случай предусмотрен вызов терминала по Ctrl+Shift+T. Ученикам о этих возможностях можно и не говорить, это сделано в первую очередь для удобства учителя.
4. С помощью средств конкретного дистрибьютива Linux, или вручную, устанавливаем openbox оконным менеджером по умолчанию. Для этого достаточно изменить значение параметра Session в файле ~/.dmrc вот так:
5. Проверьте, чтобы сервис sshd был установлен и запускался при загрузке ОС.
6. Для возможности подключения учениками своих флешек я использую скрипт udevmon, который автоматически монтирует их в каталог /media. Данный скрипт нужно загружать при старте системы в виде демона. У меня это сделано через /etc/rc.d/rc.local.
1. В большинстве дистрибьютивов Linux nfsd устанавливается по умолчанию, поэтому сразу переходим к его настройке:
— cоздайте папку /mnt/nfs и дайте к ней полные права доступа для всех (команда chmod 777 /mnt/nfs)
— добавьте в файл /etc/exports строку:
— посмотрие, чтобы в файле /etc/hosts.allow были следующие строки:
— проверьте, чтобы сервисы rpc и nfsd запускались при загрузке ОС.
2. Устанавливаем программу RuleUser. Данная программа — это авторская разработка компании Alt Linux, и в других дистрибьютивах вы её не найдёте. Но по сути — это скипт на языке python использующий библиотеки pygtk, gtkvnc. Установите эти библиотеки, если они отсутсвуют у вас в системе.
3. Настраиваем удалённые подключения в программе RuleUser. Это можно сделать используя графический конфигуратор, но можно и просто правкой файла ~/.ruleuser/config.cfg.
Вот часть конфигурационного файла, касающаяся ученических машин:
Cтрока «g1 = standalone, 10.» Тут g1 — это группа компьютеров 1, количество компьютеров в группе равно 10. Дальше идёт описание отдельных компьютеров группы. Для упрощения настройки можно скопировать строки описания компьютеров, изменив в них номера компьютеров, ip адреса и уникальный идентификатор (для первого компьютера в данном конфиге это 1418361570). В графическом конфигураторе это будет немного дольше.
4. Настраиваем ssh для доступа к компьютерам учеников без ввода пароля:
— введите команду ssh-keygen -t rsa
она создаст в домашней директории пользователя два ключа, один из них нужно скопировать на удалённые машины, к которым вам необходим доступ.
— копируем ключи на все ученические компьютеры:
После этого можно будет заходить и управлять компьютером через пользователей root и guest. Вводить пароль вам не понадобится.
Учитель имеет полный доступ к компьютерам учеников по ssh. Через программу RuleUser можно следить за деятельностью учеников, перехватывать управление их компьютерами, блокировать ввод и т.д. Учитель даёт ученикам доступ только к тем программам, которые необходимы для конкретного урока. Для этого достаточно перетащить мышкой из меню Gnome, XFCE или KDE иконку какого-либо приложения в папку /mnt/nfs и обновить рабочий стол учеников (по F7, либо запустить скрипт обновления по ssh).
У меня это выглядело так:
Ученик:

Учитель:

Нам понадобится:
1. Установить на все компьютеры класса ОС Linux. Дистрибьютив выбирайте на свой вкус.
2. Установить на все ученические компьютеры пакеты: openbox, tint2, pcmanfm, gxkb, x11vnc (сервер и клиент), vlc
3. Кроме этого на учительском компьютере необходимо установить программу RuleUser, подробнее о ней будет рассказано ниже.
4. Создать на ученических компьютерах пользователя guest.
5. Установить и настроить на всех компьютерах пакет sshd.
6. Скопировать приложенные конфигурационные файлы на ученические и учительский компьютеры.
Примечание. В этом примере компьютер учителя имеет ip адрес: 192.168.1.100/24. Ученические компьютеры имеют адреса, начиная с 192.168.1.101/24.
Компьютеры учеников
1. Исключаем возможность изменения настроек рабочего стола ученических компьютеров.
Для этого используем связку openbox (для управления окнами) + tint2 (панель задач) + pcmanfm (для отображения иконок рабочего стола) + gxkb (для отображения статуса языка ввода).
Иконки рабочего стола ученических компьютеров будут находится на машине учителя. Таким образом учитель будет контр��лировать то, что доступно ученикам. На ученических же машинах необходимо добавить в файл /etc/fstab строку для монтирования nfs папки с машины учителя:
192.168.1.100:/mnt/nfs /home/guest/Desktop nfs ro,nolock,nocto,actimeo=3600 0 0
2. Делаем возможным переключение языка ввода средствами X сервера, для этого на ученических компьютерах создаём файл /etc/X11/xorg.conf.d/10-keymap.conf со следующим содержимым:
Section "InputClass"
Identifier "Keyboard settings"
MatchIsKeyboard "yes"
Driver "evdev"
Option "XkbLayout" "us,ru"
Option "XkbVariant" ""
Option "XkbOptions" "grp:ctrl_shift_toggle"
EndSection]
Переключение по Ctrl+Shift.
3. Скачиваем конфиги для: openbox, tint2, pcmanfm, gxkb. Копируем их куда следует. Обычно это ~/.config
Обращаю ваше внимание, что в конфигах openbox есть скрипт autostart, через который запускается x11vnc сервер. А так же там есть скрипт обновления рабочего стола refresh, который запускается по нажатии на клавишу F7. На всякий случай предусмотрен вызов терминала по Ctrl+Shift+T. Ученикам о этих возможностях можно и не говорить, это сделано в первую очередь для удобства учителя.
4. С помощью средств конкретного дистрибьютива Linux, или вручную, устанавливаем openbox оконным менеджером по умолчанию. Для этого достаточно изменить значение параметра Session в файле ~/.dmrc вот так:
Session=openbox
5. Проверьте, чтобы сервис sshd был установлен и запускался при загрузке ОС.
6. Для возможности подключения учениками своих флешек я использую скрипт udevmon, который автоматически монтирует их в каталог /media. Данный скрипт нужно загружать при старте системы в виде демона. У меня это сделано через /etc/rc.d/rc.local.
Компьютер учителя
1. В большинстве дистрибьютивов Linux nfsd устанавливается по умолчанию, поэтому сразу переходим к его настройке:
— cоздайте папку /mnt/nfs и дайте к ней полные права доступа для всех (команда chmod 777 /mnt/nfs)
— добавьте в файл /etc/exports строку:
/mnt/nfs 192.168.1.0/24(ro,sync)
— посмотрие, чтобы в файле /etc/hosts.allow были следующие строки:
nfsd: 192.168.1.0/255.255.255.0
rpcbind: 192.168.1.0/255.255.255.0
mountd: 192.168.1.0/255.255.255.0
— проверьте, чтобы сервисы rpc и nfsd запускались при загрузке ОС.
2. Устанавливаем программу RuleUser. Данная программа — это авторская разработка компании Alt Linux, и в других дистрибьютивах вы её не найдёте. Но по сути — это скипт на языке python использующий библиотеки pygtk, gtkvnc. Установите эти библиотеки, если они отсутсвуют у вас в системе.
3. Настраиваем удалённые подключения в программе RuleUser. Это можно сделать используя графический конфигуратор, но можно и просто правкой файла ~/.ruleuser/config.cfg.
Вот часть конфигурационного файла, касающаяся ученических машин:
[group]
group_list = 1
g1 = standalone,10
g1_1 = 1,guest,pc2,192.168.1.101,192.168.1.101,standalone,1418361570,,xfce,standalone,22,22,guest,guest,static,,/home/guest/.vnc/passwd,vncviewer -geometry 1366x768,vncviewer -fullscreen -MenuKey none,False,True,False,100,x11vnc -noxdamage -scale 1024x768,5900,$HOME/.ssh/authorized_keys,$HOME/.ssh/authorized_keys,,:0,,,,$HOME/.ssh/authorized_keys,/tmp,False,default,False,True,False,False,False,False,,x11vnc -noxdamage -scale 640x480,vncviewer -MenuKey none,False,x11vnc -noxdamage -defer 3000,False,False,True,,,,,,,,,,,,,,,,default,True,,,,,,,,,,,,,,False,10,mpgv,800x600,640x480,False,300,False,False,,False,vlc --network-caching=100 --qt-minimal-view --no-qt-error-dialogs --no-qt-privacy-ask,,,,,,,,
g1_2 = 2,guest,pc3,192.168.1.102,192.168.1.102,standalone,1418361573,,xfce,standalone,22,22,guest,guest,static,,/home/guest/.vnc/passwd,vncviewer -geometry 1366x768,vncviewer -fullscreen -MenuKey none,False,True,False,100,x11vnc -noxdamage -scale 1024x768,5900,$HOME/.ssh/authorized_keys,$HOME/.ssh/authorized_keys,,:0,,,,$HOME/.ssh/authorized_keys,/tmp,False,default,False,True,False,False,False,False,,x11vnc -noxdamage -scale 640x480,vncviewer -MenuKey none,False,x11vnc -noxdamage -defer 3000,False,False,True,,,,,,,,,,,,,,,,default,True,,,,,,,,,,,,,,False,10,mpgv,800x600,640x480,False,300,False,False,,False,vlc --network-caching=100 --qt-minimal-view --no-qt-error-dialogs --no-qt-privacy-ask,,,,,,,,
Cтрока «g1 = standalone, 10.» Тут g1 — это группа компьютеров 1, количество компьютеров в группе равно 10. Дальше идёт описание отдельных компьютеров группы. Для упрощения настройки можно скопировать строки описания компьютеров, изменив в них номера компьютеров, ip адреса и уникальный идентификатор (для первого компьютера в данном конфиге это 1418361570). В графическом конфигураторе это будет немного дольше.
4. Настраиваем ssh для доступа к компьютерам учеников без ввода пароля:
— введите команду ssh-keygen -t rsa
она создаст в домашней директории пользователя два ключа, один из них нужно скопировать на удалённые машины, к которым вам необходим доступ.
— копируем ключи на все ученические компьютеры:
for i in 101..110; do ssh-copy-id -i ~/.ssh/id_rsa.pub guest@192.168.1.$i ; done
for i in 101..110; do ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.$i ; done
После этого можно будет заходить и управлять компьютером через пользователей root и guest. Вводить пароль вам не понадобится.
Итог
Учитель имеет полный доступ к компьютерам учеников по ssh. Через программу RuleUser можно следить за деятельностью учеников, перехватывать управление их компьютерами, блокировать ввод и т.д. Учитель даёт ученикам доступ только к тем программам, которые необходимы для конкретного урока. Для этого достаточно перетащить мышкой из меню Gnome, XFCE или KDE иконку какого-либо приложения в папку /mnt/nfs и обновить рабочий стол учеников (по F7, либо запустить скрипт обновления по ssh).
У меня это выглядело так:
Ученик:

Учитель:

