Ограничение времени работы за компьютером
Введение
В состав операционной системы МСВСфера входит приложение Timekpr-nExT, которое предназначено для контроля и ограничения времени, проведённого пользователем за компьютером.
Установка
Для установки Timekpr-nExT выполните следующую команду:
$ sudo dnf install timekpr-next
Также установку можно выполнить с помощью Центра приложений.
Компоненты системы
Служба timekpr
Основным компонентом Timekpr-nExT является системная служба timekpr
, которая
осуществляет учёт времени, проведённого пользователем за компьютером, и
применение соответствующих ограничений.
Сервис timekpr
запускается автоматически после установки RPM пакета и в
процессе загрузки компьютера, проверить статус можно с помощью следующей
команды:
$ systemctl status timekpr
● timekpr.service - Timekpr-nExT daemon service
Loaded: loaded (/usr/lib/systemd/system/timekpr.service; enabled; preset: disabled)
Active: active (running) since Tue 2025-05-27 10:11:37 MSK; 36s ago
Docs: file:/etc/timekpr/timekpr.conf
Main PID: 1606 (timekprd)
Tasks: 3 (limit: 50155)
Memory: 14.2M
CPU: 98ms
CGroup: /system.slice/timekpr.service
└─1606 /usr/bin/python3 /usr/lib/python3.9/site-packages/timekpr/server/timekprd.py /usr/bin/timekprd
мая 27 10:11:37 sphere-96-arm systemd[1]: Started Timekpr-nExT daemon service.
Панель управления
Для настройки системы используется графическая панель управления:

Для работы с панелью управления пользователь, выполняющий роль администратора
системы учёта времени, должен либо обладать привилегиями системного
администратора, либо быть участником системной группы timekpr
. Второй вариант
является предпочтительным с точки зрения информационной безопасности.
Для добавления пользователя в группу timekpr
выполните следующую команду
(замените user
на реальное имя пользователя):
$ sudo gpasswd -a user timekpr
Добавление пользователя user в группу timekpr
После добавления в группу пользователю необходимо выйти из системы и зайти повторно для применения изменений.
Для запуска панели управления используйте пункт главного меню
Панель управления Timekpr-nExT
:

Либо выполните следующую команду в терминале:
$ timekpra
Если по каким-то причинам вы не можете добавить пользователя в группу timekpr
,
то вам необходимо использовать пункт меню
Панель управления Timekpr-nExT (Администратор)
либо команду sudo timekpra
.
В таком случае система попросит вас ввести пароль.
Процедура настройки системы контроля времени с помощью панели управления описывается в следующих разделах.
Клиентское приложение
TBD.
Настройка ограничений времени
Для настройки ограничений рабочего времени запустите
Панель управления Timekpr-nExT
, выберите пользователя, для которого необходимо
установить ограничения, в выпадающем списке пользователей (отмечен цифрой 1
на
снимке экрана) и перейдите во вкладку Настройка ограничений
(отмечена цифрой
2
на снимке экрана):

Для каждого пользователя можно установить следующие типы лимитов:
Ограничения по дням недели — определяет в какие дни недели пользователь может использовать компьютер и суммарное количество времени, доступное для каждого дня;
Часовые интервалы — определяет конкретные временные интервалы, в которых пользователь может использовать компьютер в течение дня;
Недельные и месячные лимиты — определяет суммарное количество времени, доступное пользователю в течение недели и месяца.
Ограничения по дням недели
Лимит «Ограничения по дням недели» позволяет задать список дней, в которые пользователь может работать за компьютером, а также указать количество времени, доступное для каждого дня.
Для запрета работы в определённый день недели уберите флажок в колонке «Включено». На следующем снимке экрана в качестве примера установлен запрет на работу с компьютером в выходные дни:

Также вы можете ограничить суммарное количество времени для каждого дня: для
этого выберите в таблице день недели, нажмите на соответствующую ячейку в
колонке «Ограничение» и укажите необходимое значение в формате ЧЧ:ММ:CC
(Часы:Минуты:Секунды
). Значение по умолчанию - 24:00:00
, что означает
отсутствие ограничений по времени. В качестве альтернативного способа вы можете
использовать переключатель Ч/М
(Часы/Минуты
) и кнопки +/-
для изменения
значения.
На следующем снимке экрана доступное время в будние дни ограничено восемью часами:

Часовые интервалы
С помощью часовых интервалов вы можете определить, в какие промежутки времени в течение дня пользователь может использовать компьютер. Настраивать их можно как для одного, так и для нескольких дней одновременно.
В конфигурации по умолчанию для всех дней задан один интервал с 00:00
до
24:00
— фактически это означает отсутствие ограничений.
Для изменения существующего интервала выберите один или несколько дней в таблице
«Ограничения по дням недели», затем в колонке «Из» установите начальное время,
а в колонке «В» — конечное время интервала. На снимке экрана ниже показана
установка временного интервала с 8:00
до 17:00
для всех будних дней:

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

При настройке интервалов следует придерживаться следующих правил:
интервалы не должны пересекаться;
даже минутный перерыв между интервалами активирует ограничения;
в течение одного часа не может начинаться и заканчиваться больше одного интервала.
Также следует упомянуть переключатель в колонке «∞» — его активация приведёт к тому, что выбранный интервал будет считаться свободным от ограничений и не будет учитываться в общем дневном лимите. Это может быть полезно, например, если ребёнок посещает онлайн курсы и время, проведённое на них, не должно приводить к уменьшению доступного для других активностей времени.
Недельные и месячные лимиты
С помощью блока недельных и месячных лимитов вы можете настроить максимально допустимое время использования компьютера за неделю или месяц. В конфигурации по умолчанию лимиты отсутствуют: для недельного ограничения установлено значение 7 дней, а для месячного — 31 день.
Для определения значений используется формат Дни:Часы:Минуты:Секунды
. При
вводе вы можете использовать сокращения, например: значение 6
будет
преобразовано в 06:00:00:00
, а 6:12:30
— в 06:12:30:00
.
Недельные и месячные лимиты работают одновременно с дневными лимитами — система всегда будет использовать наименьшее из действующих ограничений.
Сохранение настроек
После установки необходимых ограничений нажмите кнопку «Применить дневные лимиты» для сохранения настроек. В случае успешного сохранения настроек программа отобразит подтверждающее сообщение в статусной строке — после этого вы можете перейти к настройкам лимитов для другого пользователя, либо закрыть программу.
Ограничение времени для отдельных процессов
В системе Timekpr-nExT также реализована функция ограничения времени использования отдельных процессов. Изначально этот модуль был разработан для ограничения времени, проведённого в играх детьми, однако может быть использован для контроля использования любых процессов. Настройки данной функции доступны во вкладке «Настройка игрового времени»:

В блоке «Параметры игрового времени» находится группа переключателей, отвечающая за общие настройки модуля:
Включить игровое время — активирует функцию учёта времени использования отдельных процессов для выбранного пользователя. Также для работы этой функции потребуется включить соответствующий переключатель в системных настройках Timekpr-nExT;
Включить переопределение игрового времени — активация этого переключателя отключает стандартные лимиты времени, учёт будет выполняться только для процессов, перечисленных в блоке «Игровые действия»;
Допускается в течение интервалов «∞» — разрешает запуск процессов, определённых в блоке «Игровые действия» в интервалах, помеченных как свободные (∞) в блоке «Часовые интервалы» вкладки «Настройка ограничений».
В блоке «Лимиты игрового времени» настраиваются дни и часы, в которые пользователь сможет запускать процессы, определённые в блоке «Игровые действия». Процедура настройки идентична настройке часовых интервалов во вкладке «Настройка ограничений».
Блок «Игровые действия» является ключевым для данного модуля — в нём
настраивается список процессов, для которых необходимо применять ограничение. В
поле «Маска процесса» необходимо ввести название команды без пути и аргументов
командной строки (используйте команды top -c -d 1
, htop
и т.п., чтобы
получить информацию о запущенных в системе процессах). В поле «Описание процесса»
вы можете добавить опциональный комментарий. Также вы можете включить системную настройку
«Улучшенный мониторинг активности» —
в этом случае будет активирована поддержка регулярных выражений и
аргументов командной строки в поле «Маска процесса».
Для сохранения изменений нажмите кнопку «Применить конфигурацию игрового времени».
Дополнительные опции
Во вкладке «Дополнительные опции» находятся дополнительные параметры, которые могут быть настроены для каждого пользователя:

Отслеживание неактивных сеансов — активирует учёт времени, даже когда экран компьютера заблокирован или пользователь работает в аппаратной консоли;
Скрыть значок и уведомления — скрывает иконку клиентского приложения Timekpr-nExT на панели задач рабочего стола и отключает предупреждения о скором завершении сеанса;
Тип ограничения/блокировки — определяет действие, которое должно быть выполнено по достижении лимита времени пользователем:
завершить сеансы — принудительно завершает сессию пользователя. В случае повторного входа в систему сессия будет также незамедлительно закрыта;
выключить компьютер — выключает компьютер по достижении лимита. Используйте эту опцию с осторожностью, особенно в многопользовательских окружениях;
приостановить работу компьютера — переводит компьютер в спящий режим. Пользовательская сессия при этом не завершается — при включении экран будет заблокирован. Если выход из спящего режима был осуществлён до сброса лимитов, компьютер будет повторно переведён в спящий режим;
приостановка/пробуждение компьютера — действует так же, как и предыдущая опция, но компьютер будет автоматически выведен из спящего режима в указанном интервале этого же дня. Некоторое оборудование может быть несовместимо с этим режимом — как минимум требуется поддержка RTC (Real Time Clock) в BIOS/UEFI и именно программа Timekpr-nExT должна перевести компьютер в спящий режим. Если следующий период разблокировки лимитов не попадает в указанный в настройках опции интервал, компьютер не будет автоматически выводиться из спящего режима;
заблокировать экран — по исчерпании лимита экран компьютера блокируется.
Последние три варианта не являются надёжными способами блокировки, а больше подходят для самоконтроля. В производственных условиях рекомендуется использовать варианты «завершить сеансы» или «выключить компьютер».
После внесения изменений нажмите кнопку «Применить конфигурацию» для сохранения настроек.
Пользовательское приложение
После установки и активации системы Timekpr-nExT у каждого пользователя на панели задач появится иконка приложения, отображающая текущий статус.
В случае отсутствия настроенных ограничений иконка будет иметь вид открытого замка с символом «∞»:

Если же лимиты активны, то иконка будет иметь вид закрытого замка и счётчика оставшегося времени до завершения сессии:

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

Осталось времени — отобразит всплывающее уведомление о том, сколько времени осталось до блокировки сеанса;
О программе — отобразит окно с информацией о версии программы Timekpr-nExT, её разработчиках и лицензии;
Ограничения и Конфигурация — отобразит основное окно пользовательского приложения, в котором можно будет посмотреть статистику использования времени и настроить уведомления системы:

Системные настройки
Для доступа к системным настройкам Timekpr-nExT вам необходимо запустить панель управления с привилегиями системного администратора и перейти на вкладку «Конфигурация Timekpr-nExT»:

Для большинства сценариев использования конфигурация по умолчанию является оптимальной и не требует изменения.
Блок «Управление настройками Timekpr-nExT»:
Окончательное уведомление — определяет, за сколько секунд до истечения выделенного времени пользователю будет показано финальное уведомление о предстоящем завершении сеанса;
Время завершения — определяет, за сколько секунд до истечения выделенного времени будет применяться блокировка сеанса;
Время обратного отсчета — определяет, за сколько секунд будет начат обратный отсчёт в реальном времени перед блокировкой сеанса;
Интервал опроса — задаёт интервал в секундах, с которым система пересчитывает оставшееся время и анализирует сеансы пользователя;
Интервал сохранения — задаёт интервал в секундах, с которым система будет сохранять статистику активности пользователя на диск;
Уровень журналирования — задаёт уровень детализации сообщений в системном журнале службы:
1 — стандартный (рекомендуется к использованию в производственной среде);
2 — отладочный (включает дополнительную диагностическую информацию);
3 — расширенный отладочный (включает вывод максимального количества диагностической информации, включая содержимое внутренних структур. Он используется, в основном, разработчиками системы).
Блок «Управление элементами отслеживания Timekpr-nExT»:
Отслеживаемые сеансы — определяет типы сеансов, для которых будет выполняться учёт времени. В конфигурации по умолчанию отслеживаются только сеансы «x11» (Xorg), «wayland» и «mir», что является достаточным для большинства сценариев использования. Timekpr-nExT предполагает, что существуют только эти типы сеансов и сеансы, указанные в списке «Исключённые сеансы»;
Исключенные сеансы — список сеансов, для которых не будет осуществляться учёт времени. В конфигурации по умолчанию в этот список входят «tty» (аппаратные консоли,
Ctrl+Alt+F[1-7]
) и «unspecified» (все остальные типы сеансов, которые не входят в списки отслеживаемых и исключённых сеансов);Исключенные пользователи — список пользователей, для которых не должен осуществляться учёт времени. Как правило, это системные пользователи, от имени которых запускаются менеджеры входа в систему (GDM и т.п.).
Блок «Дополнительные опции»:
Контроль игрового времени включён — включает или отключает функцию учёта игрового времени. Если этот переключатель выключен, то функция будет отключена для всех пользователей, даже если для отдельно взятого пользователя она активирована во вкладке «Настройка игрового времени»;
Улучшенный мониторинг активностей — если эта опция включена, то функция учёта игрового времени будет отслеживать процессы по полной строке запуска процесса, включая аргументы командной строки, а если отключена, то отслеживание будет осуществляться только по названию команды. В некоторых случаях эта функция может быть полезна для отслеживания процессов, которые запускаются через интерпретаторы.
Для сохранения изменённых настроек нажмите кнопку «Применить настройки Timekpr-nExT».