如何限制 Ubuntu 电脑的使用时间

如何限制 Ubuntu 电脑的使用时间

我想将员工对用户帐户的访问限制在每天的工作时间内。

周一至周五(8:00-17:00)
周六(8:00-13:00)

这个怎么做?!

命令行和 GUI 应用程序受到广泛欢迎

答案1

这是我在评论中链接的原始脚本的改进版本。此脚本使用 ubuntu 附带的所有工具,即at(用于任务调度)、,date因此gnome-session-quit无需额外安装软件。可以从文件~/.config/autostart/etc/xdg/autostart在文件中调用此脚本.desktop

date将确定当前小时数以及星期几(数字)。然后,case 结构决定将哪个参数提供给logthemout函数;该参数是当天的下班时间。对于周一至周五,该参数是 17:00,对于周六,该参数是 13:00。logthemout 函数将依次检查当前时间是否在工作时间范围内(if 语句带有逻辑“或”)。如果是,用户将收到适当的通知,告知他们将在特定时间注销。如果工作时间不在该范围内,用户将被注销。从技术上讲,发生的事情是用户登录,但脚本立即将其注销。此脚本的缺点是脚本依赖于系统时间。如果用户有能力改变系统时间,他们就有能力绕过脚本。否则,这应该有效。

#!/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

答案2

由于您是经验丰富的用户,我建议您使用pam_时间

pam_time PAM 模块不会对用户进行身份验证,而是限制在一天中的不同时间、特定日期或通过各种终端线路对系统和/或特定应用程序的访问。可以配置此模块以根据用户的姓名、一天中的时间、星期几、他们申请的服务以及他们发出请求的终端来拒绝(个人)用户的访问。

答案3

我认为 TimeKpr 可以胜任。以下是链接https://launchpad.net/timekpr

相关内容