Сегодня Понедельник, 21 Августа 2017 года

Доступность нашего хостинга:

uptime узнать

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Как безболезненно перевести образовательное учреждение на Linux и СПО?

Доброго времени суток.
С самого начала оговорюсь: переход на Linux и пакет СПО — не совсем безболезненная штука, да и не все ПО в конце перехода остается свободным. Но об этом позже.

Итак, начнем.
Возможно, многие уже знают, что в школах заканчивается срок действия лицензии на MS Windows. Точная дата — 1 января 2011. Где-то сверху было решено, что продлевать лицензии на ОС от Microsoft — слишком дорогое удовольствие, и гораздо проще перейти на пакет бесплатного ПО. Перевод компьютеров в школах на Linux начался задолго до 1 января и первой волной на школьные машины обрушился AltLinux 4, а потом и 5.1. Основными особенностями именно этого дистрибутива является его бесплатность (ну разумеется) и пакет предустановленных образовательных программ. Однако недостатков у AltLinux тоже предостаточно, но не будем о них, это тема совсем другого поста.
Второй Linux-волны пока не последовало, но еще не вечер.

В общем и целом, лично мне не хочется сидеть сложа руки и ждать, пока «оно» нахлынет и заполонит наши машины очередным недоброкачественным Alt-ом. Поэтому в учреждении, где я имею удовольствие работать, было принято решение перевести машины на Linux и СПО заблаговременно и выкинуть данный аспект из головы. Далее по порядку.

Требования к дистрибутиву

Были выдвинуты некоторые требования к тому дистрибутиву Linux, который заменит AltLinux и оставшиеся Windows. А именно:
— человечность, близость к пользователю, простота использования;
— возможность запустить ряд образовательных программ, в том числе и написанных для ОС Winodws;
— простота администрирования системы.

Чем не подошел AltLinux?

По первому пункту — пользователь, впервые усевшийся за Linux-машину теряется в KDE прочно и надолго. Рабочий стол вполне приемлем, но что такое корневая и домашняя папка? Почему все такое раздражающе блестючее и переливающееся? Почему белый текст на светло-голубых обоях? Не будем о холиварах, но это действительно неудобно.
По второму пункту никаких претензий, ведь это главная задача дистрибутива.
По третьему — все просто чудовищно. Чтобы заблокировать все рюшечки и панелечки в кедах придется просидеть неделю-другую, периодически тестирую полученные результаты на детях. Кроме того, адекватно заблокировать виджет «Просмотр папки» так и не удалось. Возможно руки кривые, конечно, кто знает.
Ну и в общем и целом — не нравится. Все, точка.

На что меняем?

Тут у нас встает вопрос о выборе дистрибутива. Далеко ходить не пришлось, как будто специально под наши нужды совсем недавно был выпущен Linux Mint 9 Росинка. К сожалению, на данный момент домен заблокирован RuЦентром. Почему мы выбрали Росинку?
Изначально планировалось остановиться на Ubuntu и самостоятельно установить на нее все необходимое ПО и оптимизировать ее под нужды учеников. Но, как оказалось, Росинка — та же Ubuntu, только кое-что уже стоит, да и работать с ней чуть приятнее. Единственное, что могло напрячь — цена в 350 рублей за лицензию на неограниченное количество компьютеров. Но тут все, как вы понимаете, в пределах разумного.
Итак, лицензия куплена, дистрибутив записан на диск, начнем. Дальше — самое интересное...

Что же мы сделали?

Во-первых, установили все необходимое ПО, среди которого:
Pascal ABS — виртуализация с помощью Wine
Компас 3D LT 5.10 (лицензия в школе уже имеется) — виртуализация с помощью Wine
KTurtle
Gambas
QBasic — виртуализация с помощью DosBox
КуМир — предустановлено
OpenOffice.org — предустановлено

Во-вторых, создали необходимых пользователей ОС — Ученик и Администратор — и оптимизировали вход в ОС. Пароли от Ученика и Администратора не известны обычным пользователям, это важно.
После того как ученик включает компьютер, на 1 секунду возникает grub (вынужденная задержка для возможных восстановительных работ), далее загружается Росинка. Окно выбора пользователя с автоматическим входом висит еще 2 секунды (опять же, для возможных восстановительных и административных работ), после чего пользователь входит без пароля в систему под аккаунтом Ученик. Пользователя (ученика) ожидает рабочий стол с обоями, выбранными преподавателем, необходимыми ярлыками на рабочем столе и одной панелью внизу с апплетами главного меню, сворачивания всех окон и области уведомлений. Забегая вперед: что бы ни изменил ученик — после перезагрузки компьютера его будет ожидать точно такой же рабочий стол.
Это взгляд со стороны ученика, теперь давайте посмотри на все это безобразие со стороны администратора…
Дети — явление опасное. Особенно если им в руки попадает что-то новое, например дистрибутив невиданной доселе Росинки. Все-то им хочется потрогать, пощупать, поизменять, поудалять. Опасные зоны, как показало тестирование — обои рабочего стола, темы оформления, панели, значки рабочего стола, анимации окон. Все возможные изменения были приняты во внимание и был написан некий скрипт, который возвращает панели в рабочее состояние, восстанавливает нужные обои, темы, занчки рабочего стола.
Чтобы меньше мороки было с домашней папкой — выполняем следующие действия (от имени Администратора):
$ cd /home/uchenik
$ rm -r *

После этого заходим Учеником в домашнюю папку — там пусто. Пока не нажмешь Ctrl+H, конечно (скрытые файлы, эх). То есть мест, где можно нагадить становится все меньше. Теперь, кстати говоря, рабочий стол становится домашней папкой, поэтому закрыть доступ к скрытым файлам домашней папки совсем просто — просто убрать ее с рабочего стола. Как? Для этого в системе уже есть Ubuntu Tweak, который позволит нам отключить на рабочем столе отображение каких-либо системных ярлыков (Компьютер, Домашняя папка). Все! Теперь система в безопасности. Но ее адекватная работоспособность еще нет. Ноутбуки в классе не самые новые, кхм, и железо там то еще. Поэтому, если создать пару десятков панелей и забить их до отказа апплетами слежения за памятью компьютера и еще чем-нибудь подобным, ОС повиснет накрепко. А еще у наших местных учеников есть классная отговорка — «у меня такого-то ярлычка на рабочем столе нет, задание сделать не могу». Тут нам на помощь приходит bash.
Итак, представляю вашему вниманию…

Волшебный скрипт

#!/bin/bash
notify-send «Подождите, пока не исчезнет эта подсказка» «Выполняется очистка и настройка рабочего стола...»
#echo «Очищаю рабочий стол...»
#cd /home/uchenik/Рабочий*
#rm -r *
echo «Очищаю домашнюю папку...»
cd /home/uchenik
rm -r *
echo «Настраиваю обои рабочего стола...»
# Обои рабочего стола: wall.jpg (/usr/share/backgrounds)
gconftool-2 --type string --set /desktop/gnome/background/picture_filename "/usr/share/backgrounds/wall.jpg"
echo «Настраиваю темы...»
# Темы GTK2, Metacity, Icons: Mint-X
gconftool-2 --type string --set /desktop/gnome/interface/gtk_theme «Mint-X»
gconftool-2 --type string --set /desktop/gnome/interface/icon_theme «Mint-X»
gconftool-2 --type string --set /apps/metacity/general/theme «Mint-X»
# Настройка стандартных панелей
echo «Настраиваю панели...»
gconftool-2 --load "/.scripts/data/Gnome_Panel.xml"
# Сброс настроек Compiz
echo «Сбрасываю настройки Compiz...»
gconftool-2 --recursive-unset /apps/compizcompiz --replace
compiz --replace
#echo «Настраиваю сеть...»
# Перезагрузка сетевого апплета
#killall nm-applet
nm-applet
echo «Настраиваю значки рабочего стола...»
# Копирование нужных ярлыков на рабочий стол пользователя
cd "/.scripts/data"
# Закомментируйте ненужные ярлыки (# перед строкой)
cp «alacarte-made-9.desktop» /home/uchenik
cp «Нету меню ПУСК?» /home/uchenik
cp «gambas2.desktop» /home/uchenik
cp «kturtle.desktop» /home/uchenik
cp «kumir-suse10x.desktop» /home/uchenik
cp «Millioner (другая копия).desktop» /home/uchenik
cp «Millioner (копия).desktop» /home/uchenik
cp «Pascal ABC.desktop» /home/uchenik
cp «QBasic.desktop» /home/uchenik
cp «Excel.desktop» /home/uchenik
cp «Word.desktop» /home/uchenik
cp «PowerPoint.desktop» /home/uchenik
cd /.scripts
cp «Очистить рабочий стол» /home/uchenik
#cd /home/uchenik
#mv *.desktop «Рабочий стол»
echo «Завершаю работу...»
killall gnome-panel
notify-send «Все готово!» «Приятной работы»
echo «Готово!»

Итак, большинство пояснений в комментариях. Всякие-разэтакие echo добавлены для debug'а. Разве что: Excel, Word и PowerPoint — это так в Росинке зовутся, как вы уже догадались, небезызвестные приложения из пакета OpenOffice.org. Видимо, так детям понятнее и легче. И пару слов про nm-applet. При малом количестве ОЗУ, как показывают результаты использования двух совершенно разных машин, nm-applet иногда не запускается, а иногда запускается, но не работает. Однако решение, как вы видите есть, правда оно требует доработки.

Итак, зачем я написал этот топик? Почему я не продаю этот скрипт, который наверняка покажется весьма полезным многим образовательным учреждениям, а просто публикую его в сети? Все просто. Потому что скрипт еще сыроват. Тот же nm-applet убить без sudo не получится, а Ученик не входит в список sudoers. Конечно, мы можем сделать все через:
$ echo 'password' | sudo -S whatever
Но это означает, что мы показываем root'овый пароль всем, а вдруг найдется таки такой человек, который найдет нужную директорию и посмотрит на скрипт в gedit, к примеру? Ну и все, системе конец:
$ cd /
$ sudo rm -r *

Кроме того, скрипт находится в автозагрузке, а снять галочку оттуда или посмотреть, куда ведет ссылка может любой желающий, не владеющий паролем Ученика. Да и вернуть домашнюю папку через Ubuntu Tweak можно — программа не трубет ввода пароля.
Я фактически безвозмездно делюсь собственными наработками и найденными в сети материалами, чтобы кому-то стало легче администрировать школьный Linux. Взамен же я прошу от вас, уважаемые жители Хабра, вот чего:
Укажите мне, пожалуйста, на возможные ошибки, подводные камни и т.п., а так же помогите с усовершенствованием ОС. Нужно все-таки полностью ограничить доступ учеников к системным файлам и настройкам. С меня — периодическое тестирование и свободное распространение этих наработок.

Спасибо за внимание, надеюсь, что хоть чем-то помог вам!

www.habrahabr.ru