Ограничения времени работы пользователя.
Нужно чтобы пользователь мог работать только в определенное время (скажем с 15:00 до 21:00). При этом компьютер должен автоматически выключаться/переводится в спящий режим — не суть важно, и при попытках залогиниться пользователем в неподходящее время компьютер должен опять таки выключаться. То есть в данном случае, если компьютер включается в 1:00, то тут же он и выключается, если наступает 21:00, то компьютер выключается. Ну а если в данный момент от 15:00 до 21:00 пользователь может спокойно работать.
p.s. Мне все равно на изящность/убогость решения. Главное — чтобы работало, чем скорее — тем лучше. И просьба, если вы знаете куда копать надо, то не надо кидать пару умных фраз от которых все становится только запутанней. Пара ссылок на материал поможет куда больше.
емнип это можно с PAM организовать.
Нужно чтобы пользователь мог работать только в определенное время (скажем с 15:00 до 21:00). При этом компьютер должен автоматически выключаться/переводится в спящий режим — не суть важно, и при попытках залогиниться пользователем в неподходящее время компьютер должен опять таки выключаться. То есть в данном случае, если компьютер включается в 1:00, то тут же он и выключается, если наступает 21:00, то компьютер выключается. Ну а если в данный момент от 15:00 до 21:00 пользователь может спокойно работать.
скрипт напиши и повесь на crond.
В гноме раньше было такое, настраивалось в апплете отдыха для глаз или полувручную, не знаю, как оно с гномощелью сейчас.
Источник
Ограничиваем время проведенное за ПК в Linux с помощью Timekpr
Timekpr Revived — это программа, позволяющая отслеживать и ограничивать проведенное за компьютером время в Linux. С помощью Timekpr можно ограничить время в которое пользователю позволено заходить в систему, и количество проведенного времени. Эту небольшую программу ни в коем случае нельзя назвать полноценным родительским контролем, но во всяком случае, она позволяет ограничивать время проведенное чадом за компьютером. Это уже становится актуальным даже для Linux, т.к. количество игр с поддержкой Linux в Steam неумолимо растет.
Разработчик оригинальной программы Timekpr забросил проект довольно давно, но позже нашлись те, кому проект так же показался нужным, сделали форк и продолжили развитие проекта только под немного измененным названием — Timekpr Revived. Форк не сильно отличается от оригинала, но в отличии от него прекрасно работает в последних версиях Ubuntu, и есть индикатор для панели.
Timekpr — главное окно
Возможности
Основные возможности Timekpr-Revived:
- Ограничение количества времени работы для определенной учетной записи пользователя;
- Ограничение по времени суток, в которое разрешено пользоваться учетной записью;
- Возможность сразу заблокировать аккаунт;
- Возможность снять ограничения на один, сегодняшний день;
- Поддержка индикаторов панели и системных уведомлений;
Вот так выглядит окно, в котором настраиваются ограничения:
Timekpr — настройка ограничений
Через апплет можно получить доступ к основному окну приложения, посмотреть сколько осталось времени:
Timekpr — unity индикатор
Как работает
Timekpr загружается когда пользователь заходит в систему, и проверяет сколько осталось у него времени для работы. Если не осталось совсем, то без лишних предупреждений через минуту Timekpr выйдет из учетной записи. При повторном входе timekpr сделает тоже самое — т.е. разлогинит через минуту, если не осталось времени. Таймаут нужен для того, чтобы была возможность добавить времени использования аккаунта.
Для изменения настроек и добавлении времени, Timekpr требует пароль пользователя:
Timekpr — запрос пароля
Когда останется несколько минут, Timekpr покажет всплывающее уведомление:
Установка
Для установки необходимо добавить ppa:
Если у вас Debian, то здесь можно скачать готовый Deb пакет. В других дистрибутивах Linux придется собирать руками, из исходного кода. Скачать их можно тут.
Индикатор на панели в Unity появится после следующего входа в систему.
Источник
Xubuntu-ru.net
Используя pam_time модуля, мы можем установить ограничения на доступ к системе и / или к конкретным приложений в разное время pm, а также в определенные дни или по различным временным отрезкам. В зависимости от конфигурации, вы можете использовать этот модуль для запрета доступа отдельным пользователям на основе их имени, времени суток, pm недели, сервиса, на которые они претендуют и их терминалов, из которых они делают запросы.
Ubuntu = 11.10 прочитайте заметку внизу страницы :
На данный момент существует мало софта для осуществления родительского контроля в linux. И ещё меньше дающего полную свободу в настройке.Ниже приводится решение данной задачи с помощью модуля Linux-PAM.
Pluggable Authentication Module (PAM) это механизм аутентификации пользователей. В частности, мы собираемся использовать pam_time модуль для контроля над доступом юзеров к системе.
Используя pam_time модуля, мы можем установить ограничения на доступ к системе и / или к конкретным приложений в разное время pm, а также в определенные дни или по различным временным отрезкам. В зависимости от конфигурации, вы можете использовать этот модуль для запрета доступа отдельным пользователям на основе их имени, времени суток, pm недели, сервиса, на которые они претендуют и их терминалов, из которых они делают запросы.
При использовании pam_time, вы должны завершить синтаксис каждой строки (правила) в файле /etc/security/time.conf с новой строки. Вы можете прокомментировать каждую строку знаком фунта [#], и система будет игнорировать этот текст до новой строки.
Вот синтаксис правила:
Вот пример типичного набора правил:
Эти правила ограничивают пользователя bobby от входа между 0800 и 2000 часов и они также ограничивают доступ в Интернет в эти часы.
Примечание: Система регистрирует ошибки с этими правилами, как syslog(3).
В Ubuntu Linux, можно назначить для ограничения компьютерного времени, чтобы предотвратить подключение одного или нескольких пользователей к системе. Со временем ограничения, можно, например, ограничить доступ к компьютеру для ваших детей (своего рода родительский контроль), или даже защитить подключение к серверу в определенные часы.
Поймите, что вы будете делать
На протяжении этого урока мы будем использовать PAM (Pluggable Authentication Modules, английский Pluggable Authentication Modules). Это позволяет контролировать аутентификацию пользователей при подключении. Затем, мы будем использовать файлы конфигурации безопасности для определения времени входа допуска. Эти манипуляции могут выполняться на любой версии Ubuntu, и требуют лишь простой текстовый редактор (Vim, Emacs, Nano, Gedit, Kate и тп). Итак, нужно включить “Ограничения часов доступа” через модуль PAM.
Прежде всего, проследуйте в каталог /etc/pam.d/, где находятся все конфигурационные файлы:
Если мы хотим заблокировать доступ к компьютеру, мы должны изменить службу gdm. Измените so файл у gdm и добавьте в конец файл ав строчку ниже:
GDM это окно логина в дистрибутивах семейства Ubuntu (Ubuntu, Edubuntu and Xubuntu). Для Kubuntu, в которой используется окружение KDE, этот сервис называется kdm, в соответствии с этим, файл будет называться также. Всё, Вы включили использование PAM для контроля над временем доступа к системе.
Если у Вас сервер, то скорее всего GUI Вы не используете. Соответственно GDM / KDM не установлен и доступ не будет заблокирован. Для предотвращения доступа к консоли, необходимо изменить логин и того же файла, и добавить те же строки кода, которые названы выше. Это действие также распространяется на людей, которые используют GUI и хотят, чтобы блокировать доступ к экрану входа и терминалу.
Настройка времени доступа.
Теперь, когда служба PAM включена, нам остаётся только настроить время доступа к системе. Откройте каталог /etc/security. Здесь находятся несколько конфигурационных файлов:
Отредактируете файл time.conf. Чтобы настроить доступ, скопируйте и вставьте следующий код в конец файла:
Вместо user введите логин того пользователя, которого нужно ограничить в доступе
Если вы хотите заблокировать несколько пользователей, введите их логины строку, разделеляя их этим символом |. Например, если я хочу заблокировать доступы у Patrick, John and Emily, то синтаксис будет такой:
Если вы хотите, чтобы заблокировать доступ к системе для всех пользователей, кроме определенных, используете символ !. Например, если я хочу запретить доступ к компьютеру для всех пользователей, кроме Nicolas и Xavie, синтаксис такой:
Обратимся теперь к полю временных зон. В этой области находится выбор дней и часов, когда будет разрешен доступ. Прежде всего, необходимо указать день недели, используя следующие сокращения:
Будьте внимательны и не путайте сокращений Wk и Wd!
Затем мы указываем сроки. Они должны быть отображены в 24 часовом формате, состоящим из 4 цифр. Например, чтобы ограничить 3:17 pm до 6:34 pm, мы пишем: 1517-1834. Чтобы разрешить Marie доступ только во вторник, с 3:17 pm до 6:34 pm, мы получим результат:
Доступ вне этих часов будет запрещен. Что касается пользователей, то можно использовать операторы | и ! чтобы указать несколько временных зон (индикатор ! указывает, что все время входа допускается, за исключением того, которое будет показано).
Две звезды (символы) в начале строки кода. Так как вы хотите заблокировать доступ к системе, нет необходимости указывать, какие сервисы или терминалы вы хотите заблокировать. Однако, если вы хотите, чтобы предотвратить использование конкретного сервиса, просто укажите его в качестве следующего примера:
Таким образом, пользователь Marry не может подключиться к терминалу, 4 и 5 в выходные дни.
Некоторые примеры расписания ограничений
Матильда может подключаться каждый день с 1:20 pm до 3:20 pm и с 4:00 pm до 8:30 pm:
Stone, Frank и Florian разрешено подключаться до 2:00 pm до 6:45 pm в будние дни и 2:00 pm до 10:15 pm на выходные:
Olive никогда не позволено в доступе. jessica может войти в среду с 1:00 pm до 4:00 pm:
Два способа, для двух различных времени для каждого пользователя. Истечение сессии
Когда сессия истекает (превышается время, пока пользователь уже подключен), PAM может настигать пользователя. Например, в то время как mathilde заходит в систему во время позволенного времени! Для этого мы будем использовать новую программу: cron. Это приложение выполняет команды с интервалом во времени. В нашем случае, мы будем использовать команду skill-KILL-u чтобы отключить сеанс, когда сессия заканчивается. Обработка очень проста. Просто отредактируйте файл /etc/crontab . Добавьте следующие строки кода:
Как и прежде, заменив поле Минута и желаемое время. Затем заполните дни с запретами или просто введите звездочку (*), чтобы указать все дни недели. Наконец, в поле учетной записи пропишите логин, который должен быть заблокирован.
Дни не отмечаем в cron таким же способом! Вот список сокращений, которые будут использоваться с этой программой:
Несколько примеров работы cron (с примерами времени из предыдущей секции)
jessica может войти в среду с 1:00 pm до 4:00 pm
-> Disconnect: Tuesday at 4:00 p.m..
mathilde может входить в систему каждый день с 1:20 pm до 3:20 pm и с 4:00 pm до 8:30 pm.
-> Disconnecting: Daily, 8:30 p.m. to 3:20 p.m. ET.
Stone, Frank and Florian разрешено входить до 2:00 pm до 6:45 pm в будние дни и 2:00 pm до 10:15 pm на выходные
-> Disconnect (1): Monday, Tuesday, Wednesday, Thursday and Friday, at 18:45. -> Disconnect (2): Saturday and Sunday at 10:15 p.m..
Команда skill-KILL-u отключает пользователя с графическим интерфейсом, а также консоль. Вполне пригодно для администраторов сервера. Однако, эта команда является немедленной и отключение будет производиться без предварительного уведомления.
Можно предупредить пользователей командой wall запущенной cron за несколько минут до конца срока, которая будет отображаться в терминалах всех пользователей.
Для уведомления пользователей с GUI можно использовать wall с коммандой notify-send в пакете libnotify-bin
Для пользователей Ubuntu 11.10
IРяд пользователей испытывают проблемы с Pam. Причина проста, Ubuntu 11.10 Не поддерживает более GDM теперь используется lightGDM. Проблема начинается с расположения директивы account required pam_time.so думается, что она тут /etc/pam.d/lightdm или тут /etc/pam.d/lightdm-autologin
Все крутится вокруг двух лог-файлов LightGdm:
Или запустите LightGdm в debug mode :
Или сообщите о проблеме:
Я сообщил о баге тут . Ждем починки.
Статья является переводом 2ого комментария отсюда . Сообщайте об ошибках перевода в комментариях или через форму контакта.
По части бага описанного в конце статьи. Судя по багрепорту всё уже работает.
Источник
Контроль времени работы за компьютером
Начался учебный год и пришли проблемы невыполненных уроков. Это повлекло за собой необходимость контроля времени, проведённого ребёнком за компьютером. Если под Windows есть приложение TimeBoss, которое гибко настраивается и позволяет оградить чадо от чрезмерного нахождения за компьютером, то под linux я ничего подобного не нашёл. Не нашёл и ладно – сам написал. Нет, C и C++ я не владею, но есть опыт написания скриптов под bash.
Примечание. Писалось под свои нужды, а не как средство «массового применения». Соответственно, не всё может вас устроить, либо не устроить вовсе.
Описание и файлы.
Итак, что мы имеем:
Настройка и запуск.
Теперь, что нужно сделать, чтобы это заработало:
для RedHat-based (у меня – CentOS)
Где:
ltest (первое значение) – имя пользователя,
2:30 (второе значение) – лимит времени работы,
0:05 (третье значение) – дополнительное время работы в выходные дни.
Файлы, создаваемые при работе.
Во время работы будут созданы файлы:
Дополнительные возможности.
Если возникла необходимость добавить время работы, можно это сделать не корректируя » limits «. Для этого нужно воспользоваться дополнительным скриптом » prolong.sh «:
Продлеваем разрешённое на сегодняшний (!) день время работы пользователю ltest «ну, ещё на полчаса!»
Вроде, всё. Если возникнут вопросы, адрес на Главной.
Источник