限制允许用户登录的次数

限制允许用户登录的次数

我们有几个基于 Ubuntu 12.04 构建的 Backbox 3.13 系统。我的一个十几岁的孩子不理解“睡眠”这个概念,并且倾向于起床玩电脑。我正试图限制这种行为。我们确实尝试了保姆,它工作了几天。然后,即使设置仍然存在,它仍然允许该青少年访问她的用户帐户和互联网。

经过一番研究,我决定尝试修改/etc/security/time.conf。显然,我做得不正确,因为无论我在文件中输入哪些命令,我​​们仍然可以登录到她的用户帐户。我们不希望她在晚上 9 点到早上 6 点期间访问。我们仍然需要我一直使用计算机。以下是我尝试过的几种语法:

1. login;*;username;A12100-0600
2. login;*;username;!A12100-0600
3. login;*;username;!A12100-0600
   login;*;my username;A10000-2400
4. login;*;!username;A12100-0600

我在这里疯狂地试图弄清楚如何做到这一点。我确信我错过了一些简单的事情,或者我输入错误。任何援助将不胜感激。

答案1

1. 编辑 /etc/pam.d/common-auth 并添加以下行: account required pam_time.so

2. 编辑/etc/security/time.conf并添加限制: *;*;username;Al0800-2200

该示例允许每天上午 8 点到晚上 10 点之间使用支持 pam 的软件登录。

答案2

你只是在这里这样做吗,还是你用的是 those 而不是 Ls?

时间限制应为“大写A,小L“然后时间...

答案3

以下对我有用:

*;*;child1|child2|child3;Wk0445-1958|Sa0445-2300|Su0445-1958

以下行/etc/pam.d/common-account可能是我添加或取消注释的内容。

account required  pam_time.so

我还有一个 cron 作业,它会在晚上 8:00 检查其中一个孩子是否登录,如果是,则将其注销...实际注销的部分如下:

echo 'logging off - Following children are still logged in...'
for n in $active_children ; do echo "  " $n ; done
festival --tts <<EOT
Is is bedtime. Good bye and good night.
EOT
for n in $active_children
do
    killall -HUP -u $n
done
sleep 15
for n in $active_children
do
    killall      -u $n
done
echo "[`date`] - done"

答案4

更通用的方法是使用 cron 来锁定和解锁帐户。这消除了窗口管理器的特定要求以及与窗口管理器相关的任何变量。这仅适用于独立计算机,不适用于连接到中央身份验证服务器的台式机/笔记本电脑/平板电脑。

0 21 * * * /usr/bin/passwd -l childsUserName 0 6 * * * /usr/bin/passwd -u childsUserName'

注意:您可能需要调整“passwd”命令的路径。用“which”确定正确的路径。

在我的 CentOS 6 机器上:

which passwd

/usr/bin/passwd

相关内容