Не пускайте ребенка в интернет — он от этого тупеет! (bash.org.ru)
Здесь речь пойдет о технических средствах ограничения времени, проводимого ребенком за компьютером. (Тема родительского контроля доступа в интернет на предмет порнухи, социальных сетей (или чего там еще боятся) здесь не затрагивается. Да и вынесенная в качестве эпиграфа фраза — не про то.) Я пока не предлагаю готового решения, а хотел бы обсудить некоторое вопросы его реализации. Или, быть может, меня убедят отказаться от изобретения велосипеда, поскольку кто-то всё уже давно реализовал.
Расскажу, как это делается у нас в семье. Дети засекают время внешним будильником (телефоном), а я на досуге просматриваю логи и по мере надобности раздаю SIGSTOP, SIGKILL и прочих люлей, в том числе IRL. Понятно, что такая система не очень удобна, поскольку требует дополнительного контроля и не учитывает способов использования компьютера ребенком. Я смотрю только last — кто когда зашел/вышел из системы, поэтому не различаю, кто играл, а кто слушал аудиокнигу. (Только тсс! — дети пока полагают, что папа видит всё.)
Меня это перестало устраивать, и я захотел внести немного автоматизации. Прежде всего необходимо сформулировать требования к такой системе контроля. Какими именно должны быть требования, не вполне очевидно; я составил лишь следующий набросок.
Что касается взломоустойчивости, то достаточно лишь, чтобы не срабатывали совсем уж наивные способы обойти ограничения. Всё равно надежно сделать вряд ли удастся, ведь при наличии физического доступа к железу получить рута не составляет проблем. И если ребенок умеет это делать, то наверно вам не следует пытаться его контролировать.
Основные идеи реализации (для линукса) таковы.
Пока не очень ясно, как классифицировать процессы. Придется либо вручную, либо применять эвристику типа «всё, что из /usr/games — это игры».
В общем, я сам еще толком не продумал, чего именно хочется и каким образом. Поэтому приветствуются содержательные комментарии технического, медицинского, методического и педагогического характера.
Здесь речь пойдет о технических средствах ограничения времени, проводимого ребенком за компьютером. (Тема родительского контроля доступа в интернет на предмет порнухи, социальных сетей (или чего там еще боятся) здесь не затрагивается. Да и вынесенная в качестве эпиграфа фраза — не про то.) Я пока не предлагаю готового решения, а хотел бы обсудить некоторое вопросы его реализации. Или, быть может, меня убедят отказаться от изобретения велосипеда, поскольку кто-то всё уже давно реализовал.
Расскажу, как это делается у нас в семье. Дети засекают время внешним будильником (телефоном), а я на досуге просматриваю логи и по мере надобности раздаю SIGSTOP, SIGKILL и прочих люлей, в том числе IRL. Понятно, что такая система не очень удобна, поскольку требует дополнительного контроля и не учитывает способов использования компьютера ребенком. Я смотрю только last — кто когда зашел/вышел из системы, поэтому не различаю, кто играл, а кто слушал аудиокнигу. (Только тсс! — дети пока полагают, что папа видит всё.)
Меня это перестало устраивать, и я захотел внести немного автоматизации. Прежде всего необходимо сформулировать требования к такой системе контроля. Какими именно должны быть требования, не вполне очевидно; я составил лишь следующий набросок.
- Разделение видов взаимодействия ребенка с компьютером на несколько классов (игры, фильмы, аудиокниги, самообразование (чтение википедии и прочей документации), ...). Классификация должна производиться по двум факторам: степень нагрузки на глаза и нервную систему и, скажем так, польза для развития. Большинство игр скорее развлекают, чем развивают, и хочется простимулировать ребенка заниматься более полезным нежели приятным.
- Гибкое задание системы ограничений времени с учетом классификации. Например, такой класс как аудиокниги можно считать безвредным для организма, и поэтому вообще не ограничивать. Еще было бы удобно (для ребенка) переносить неиспользованный остаток времени на завтра или даже брать в долг (хе-хе, с процентами), но все эти махинации должны вкладываться в жесткие ограничения (за сутки, за сеанс и т.п.).
- Удобная и наглядная индикация оставшегося времени и цепочка предупреждений (вплоть до последнего китайского с последующим убийством всех процессов и баном учетной записи пользователя).
- Журналирование: кто сколько времени провел и каким образом.
- Учесть наличие нескольких компьютеров. Если дети захотят зарубиться по сети, нет причин им в этом отказывать.
Что касается взломоустойчивости, то достаточно лишь, чтобы не срабатывали совсем уж наивные способы обойти ограничения. Всё равно надежно сделать вряд ли удастся, ведь при наличии физического доступа к железу получить рута не составляет проблем. И если ребенок умеет это делать, то наверно вам не следует пытаться его контролировать.
Основные идеи реализации (для линукса) таковы.
- Сбор статистики по процессам (кажется atop из этого обзора должен подойти).
- Демон (в крайнем случае скрипт, вызываемый через хрон), который просматривает эту статистику и принимает решения.
- Система уведомления: наверно всплывающее изредка окно и таймер где-то в статус-баре (хотя я, например, не использую таких излишеств как статус-бар); также в запущенных случаях посылка SIGSTOP и через несколько секунд SIGCONT (правда, не все процессы могут это пережить).
- Ну а репрессивные механизмы (блокировка экрана скринсейвером и далее sudo -u luser kill -9 -1) — это совсем просто.
Пока не очень ясно, как классифицировать процессы. Придется либо вручную, либо применять эвристику типа «всё, что из /usr/games — это игры».
В общем, я сам еще толком не продумал, чего именно хочется и каким образом. Поэтому приветствуются содержательные комментарии технического, медицинского, методического и педагогического характера.