Как ограничить время, используемое для использования компьютера в Ubuntu
Я хочу ограничить доступ к учетным записям пользователей для рабочего дня ежедневно.
С понедельника по пятницу (с 8:00 до 17:00)
Суббота (8:00-13:00)
Как это сделать?!
Приложения командной строки и графического интерфейса хорошо приняты
3 ответа
Вот улучшенная версия моего оригинального сценария, на который я ссылаюсь в комментариях. Этот скрипт использует все инструменты, которые поставляются с Ubuntu, а именно at
(для планирования задач), date
, а также gnome-session-quit
поэтому дополнительная установка программного обеспечения не требуется. Этот скрипт можно вызвать из ~/.config/autostart
или же /etc/xdg/autostart
в .desktop
файл.
date
будет определять текущий час дня, а также день недели (число). Затем структура дела решает, какой параметр дать logthemout
функция; Параметр - время окончания рабочего дня. Для понедельника - пятницы это 17:00, а для субботы - 13:00. Функция logthemout, в свою очередь, проверит, находится ли текущее время в пределах диапазона рабочих часов (если оператор с логическим "или"). Если это так, пользователь получит соответствующее уведомление о том, что он выйдет из системы в определенное время. Если рабочее время не в пределах диапазона, пользователь выйдет из системы. С технической точки зрения, происходит то, что пользователь входит в систему, но сценарий выводит их сразу. Недостатки этого скрипта в том, что скрипт зависит от системного времени. Если у пользователя есть возможность изменять системное время, он может обойти скрипт. В противном случае это должно работать.
#!/bin/bash
set -x
HOUR=$(date +%H)
DAYOFWEEK=$(date +%u)
function logthemout
{
if [[ $HOUR -gt $1 || $HOUR -lt 8 ]]; then
gnome-session-quit --no-prompt
else
notify-send "AUTO-LOGOUT AT $1 pm"
echo "gnome-session-quit --no-prompt" | at $1:00
fi
}
case $DAYOFWEEK in
1|2|3|4|5) logthemout 17;;
6) logthemout 13;;
7) gnome-session-quit --no-prompt ;;
esac
Разъяснение:
Обычно, если вы хотите что-то запустить при входе в GUI, вам нужно создать что-то вроде /home/username/.config/autostart/mystartup-prog.desktop
, который должен иметь формат, подобный следующему:
[Desktop Entry]
Type=Application
Name=<Name of application as displayed>
Exec=<command to execute>
Icon=<full path to icon>
Comment=<optinal comments>
X-GNOME-Autostart-enabled=true
Если у вас много работников, это может быть неэффективно, поэтому лучшим способом было бы иметь одну такую запись в /etc/xdg/autostart/mystartup-prog.desktop
,
Поскольку вы опытный пользователь, я предлагаю вам использовать pam_time:
Модуль pam_time PAM не аутентифицирует пользователя, но вместо этого он ограничивает доступ к системе и / или определенным приложениям в разное время дня и в определенные дни или по различным терминальным линиям. Этот модуль может быть настроен так, чтобы запретить доступ (отдельным) пользователям на основе их имени, времени суток, дня недели, услуги, к которой они обращаются, и их терминала, с которого они делают свой запрос.
Я думаю, что TimeKpr сделает работу. Вот ссылка https://launchpad.net/timekpr