Простая система управления компьютерным классом

Статья написана для учителей информатики, которым надоело заниматься постоянным восстановлением порядка в классе и на ученических компьютерах. Для тех, кому дорого время и здоровье.

Нам понадобится:

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).

У меня это выглядело так:

Ученик:



Учитель:

Similar posts

AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 31

    +6
    Может быть, конечно, в последние пару лет многое изменилось, и я не прав, но, когда я 2 года назад вел обучение преподавателей информатики по внедрению(читай установке Linux и использованию Libre/Open Office, Gimp, InkScape), уровень был достаточно слабый, так как это все-таки больше учителя, а не админы. Мануал замечательный, спасибо вам за работу, но это не совсем для учителей, а для знакомого админа учителя или «Васи-хакера» из 11Б, которого за оценку по русскому заставят все это поднимать.
      +3
      это все-таки больше учителя, а не админы

      К сожалению часто учителя не то что не админы, информатикой занимаются физики, математики, трудовики и другие.
      0
      «информатикой занимаются физики, математики, трудовики и другие.»
      Это совершенно нормальное явление.

      В школе, возможно надо давать (это субъективное видение):
      1. историю ЭВМ при этом в связи с другими науками, чтобы ученик осознавал исторический процесс развития этой сферы.
      2. Алгоритмы, само программирование, какие-то зачатки.
      3. Современное состояние, спектр: систем, прикладных программ.
      4. Основы безопасности работы в сети. Возможно, хотя бы один урок по этике в информационном пространстве, о лицензиях, публикации/загрузке чужих программ.
        +3
        Информатику (как и любой другой предмет) преподавать должен человек, который разбирается в предмете. Идеально — человек с бэкграундом в индустрии или профильным образованием. Как по-вашему должен преподавать программирование человек, который не умеет программировать?
          +1
          Встречный вопрос: зачем в школе программист, который не умеет преподавать?
            +3
            Умение преподавать — это достаточно абстрактная вещь, которая может и не зависеть от образования или опыта работы в школе.
            Существуют педагоги от рождения, которым не нужно педагогическое образование или опыт, они и без него преподают замечательно. Точно так же существуют люди, которые работают учителями всю свою жизнь, а преподавать так и не научились (к сожалению, таких в моей жизни было подавляющее большинство).
            Человек, который никогда не преподавал в школе, возможно, много работал с джуниорами и отлично умеет объяснять основы программирования, поэтому из него получится отличный учитель. А учитель физики, который никогда в жизни не программировал, хорошим программистом быть не может, он может лишь читать материал по книжке, ничего на самом деле не понимая в предмете.
              0
              Вы не правильно представляете преподавание информатики (по крайней мере в школе)
              «преподавание информатики» совсем не равняется «преподавание программирования».
              Там от программирования хорошо если 30% времени будет. Поэтому «бэкграунд в индустрии» в этой области совершенно бесполезен и даже вреден
              Кроме того, учтите что вся программа жестко регламентирована, поэтому любая самодеятельность может привести к проблемам, в первую очередь для всей школы (можно и без лицензии остаться)
                0
                Бэкграунд вполне себе полезен, главное соблюдать требования программы.
                Программа регламентирована на нескольких уровнях: федеральный, окружной, городской, района и непосредственно школы. Строго обязателен для всех федеральный минимум. Остальные могут быть необязательными. Поэтому самодеятельность вполне возможна, но только при следующих условиях: 1) вы проталкиваете свои предложения в отдел народного образования хотя бы на самый ближайший уровень, 2) на уровне непосредствено школы организуете факультатив.
                  0
                  Я говорю о преподавании Computer Science в старшей школе.
                • UFO just landed and posted this here
                    0
                    Мы говорим о разных вещах. В статье речь идет о школьной информатике, я лично говорю о преподавании информатики в старшей школе. А в 5-6 лет пытаться объяснить сети — это действительно глупо. В 5-6 лет дети в основном еще не ходят в школу, не знаю, как у вас.
                    • UFO just landed and posted this here
            –1
            openbox, tint2, pcmanfm, gxkb, x11vnc (сервер и клиент), vlc


            Вы прямо в точности описали мою машину.
          • UFO just landed and posted this here
              +1
              С институтами/студентами по проще, там совсем отморозков отбывающих заключение на уроках за справку/аттестат нет
              Вы ошибаетесь, по моим наблюдениям таких ≈50%.

              А по поводу учитель ≠ админ вы совершенно точно подметили. Моя мать работает в школе учителем информатики и я потратил не мало времени чтобы научить её приводить xfce к первоначальному виду после учеников. Такие же отзывы от её знакомых преподавателей информатики в других школах района.
              0
              Может тогда добавить в статью часть о том, где скачать образ системы учителя и ученика и как это всё поднять на машинах?

              Я в этом году из школы ушёл, потому-что почти вдвое урезали заработную плату. Раньше была доплата за обслуживание компьютерного класса, 5% от оклада за каждый компьютер. С этого учебного года убрали. И сейчас на 20000 рублей за 35 часов в неделю никто вменяемый конечно же не пойдёт. В сельских школах и во всяких районных центрах информатику сейчас преподают учителя физкультуры и пения, ради часов конечно. Это потому-что директора считают, что дети и даже учитель физры итак умеют на кнопки жать, как-нибудь договорятся. Ну и взрослый по учебнику может дать. А учебники — это просто песня :). Я бы ими печки в деревнях растапливал, больше бы пользы было.
                0
                добавить в статью часть о том, где скачать образ системы учителя и ученика и как это всё поднять
                Я не уверен, что эту статью будут читать преподаватели, но, если бы они её читали, это бы очень помогло.
                –1
                Может кому будет интересно.

                Ребенок учится в школе, у них стоят мини-компы (типа тех что к задней стенке монитора прикручиваются) с Виндой (версию винды не знаю).
                Сейчас используется учебник информатики (за 9й класс) 2013 года издания, программы в нем приведены для языка Pascal. И да, он самый, Borland Pascal для DOS используется на уроках. Задания простейшие, типа вывести сумму чисел на экран или использовать цикл. Само программирование занимает где-то 10% от программы, остальное теория, типа перевода систем счисления (особенно радует 8-ричная, я за 10 лет работы программистом ее ни разу не использовал, а школьники должны на бумажке уметь цифры переводить) или базовые основы теории множеств.
                  –1
                  Кстати, оффтоп для тех кто хочет поностальгировать.



                  Напомню, на дворе 2015й год, по этому учебнику сейчас занимаются школьники. А мы тут про ssh и удаленный доступ… :)
                    +2
                    Пример на фотографии отлично подходит как для 1990, так и для 2015.
                    Взята простая задача и пример её решения на компьютере, нужно же с чего то элементарного начинать.
                      0
                      Я собственно и не про задачу (хотя для 9го класса могли бы дать и поинтереснее).

                      А про то, что в 2015 году можно взять куда более современную (и бесплатную) IDE, чем Turbo Pascal 1992 года выпуска (которую на современном компе и запустить-то проблемно).
                        0
                        Ну будет, допустим, Free Pascal (FPC). Что-то кардинально изменится?
                    +2
                    По-моему Pascal для школы замечательно подходит. Можно много рассуждать о том, что в школах устаревшая программа. Но большинству учеников эта информатика вообще не нужна. А для демонстрации работы алгоритма более чем достаточно (например, в отличии от того же PHP существует декларирование переменных перед использованием, оно может в некоторых современных языках и не надо, но зато учит порядку, а если человек в дальнейшем выберет данную сферу в качестве основного вида деятельности, то это будет только началом большого и долгого пути). Просто тут ресурс связанный с ИТ и мы жалуемся, что программа по ИТ отсталая, а на ресурсе для математиков сказали бы, что программа по математике устаревшая, физики обидятся, что адронного коллайдера в программе нет и т.п. и т.д.
                      0
                      С++ вроде как обладает теме же свойствами «порядка», но ничем не сложнее, зато живой язык и скомпилировать код куда проще на современных ОС или даже в онлайн компиляторе, почему же не его использовать?

                      А образование да, вы правы, по всем предметам «отсталое» во всех смыслах.
                    +1
                    Интересно, как будет выглядеть блок схема такой игры, как ГТА5 (просто первое что в голову пришло) :)
                      0
                      Ну не везде доисторичность. На месте моей работы, так учитель basic использовал. За тем его уговорил хотя-бы на microsoft visual studio перейти, а затем, вынужденно, на gambas, в силу того, что не смог подружить vs с wine.
                        0
                        Я учил питону. При этом была интересная ситуация. У меня пара учеников пошли на курсы по программированию в университет (ДВФУ). На курсах учили на паскале, но преподаватель разрешил моим ученикам делать задания на питоне, если им будет удобнее. В итоге несколько заданий они успешно выполнили, а все остальные увидели, что на питоне программа занимает почти вдвое меньше строк и проще по синтаксису. Пришлось преподавателю перестраивать курсы на живой язык. И такое бывает.
                          0
                          denis_l_eryomin Вы привели несколько интересных примеров в своей статье, но они будут полезны лишь единицам людям, по крайней мере в это стране, потому что:

                          1) На большинстве компьютеров в школах — винда
                          2) Даже если где-то и есть Linux, тот чувак, который его настроил, не будет заниматься тем, чем вы предлагаете, скорее вернёт винду на место
                          3) Ваше решение довольно сложное, новичок Linux не справится, а никаких интерактивных скриптов к статье вы не приложили

                          ИМХО, учителям и ученикам нужны «однокнопочные» кроссплатформенные решения.

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

                          Если интересно, можете ознакомится
                            0
                            Женя, спасибо за ответ. Я понимаю о чём вы пишете. Но решение действительно простое и не требующее ничего кроме стандартного набора софта. В интернете встречаются решения, но чаще всего там очень много отсебятины. Перспективы внедрения этого дела в школы есть. Но вот так называемой политической воли на это — нет. Установить образы систем для учеников и учителя нет никаких проблем, при этом не требуются все эти ручные манипуляции, описанные в статье. Научить учителей пользоваться этим — тоже не сложно.
                            Чуть позже выложу образы в инет и опишу процесс развёртывания для обычного смертного.
                              0
                              Как же «простое». Статья предполагает понимания что такое «ip адрес» от учителя. Узнать они его, многие большинство, не умеют. Умеют только по учебнику его как-то с маской подсети складывать в лучшем случае. Про цикл копирования ssh ключей я вообще молчу.

                              Может чуть автоматизировав всё это дело действительно хорошо получится.
                              В любом случае советую ознакомится с моим опытом по ссылке выше.

                            Only users with full accounts can post comments. Log in, please.