Ubuntu <= 11.10用户请遵循本指南,对于Ubuntu用户> = 11.10请阅读底部通知:
是的,所有这些程序都已过时,您的所有问题都已在此处得到答复,并且与您的父控件保持良好的外观.....
当我们谈论强制用户注销时,我们真正在谈论的是对系统访问或服务帐户实施时间限制。我发现实现时间限制的最简单方法是使用名为Linux-PAM的插件模块。
可插拔认证模块(PAM)是一种用于认证用户的机制。具体来说,我们将使用该pam_time
模块来控制用户对服务的定时访问。
使用该pam_time
模块,我们可以在一天的不同时间,特定日期或通过各种终端线路设置对系统和/或特定应用程序的访问限制。根据配置,您可以使用此模块根据个人用户的姓名,一天中的时间,一周中的一天,所申请的服务以及从其发出请求的终端来拒绝对单个用户的访问。 。
使用时pam_time
,必须/etc/security/time.conf
用换行符终止文件中每行(或规则)的语法。您可以用井号[#]注释每行,系统将忽略该文本,直到换行为止。
这是规则的语法:
服务; ttys;用户;时间
The first field — services — is a logic list of PAM service names.
The second field — tty — is a logic list of terminal names.
The third field — users — is a logic list of users or a netgroup of users.
The fourth field — times — indicates the applicable times.
这是一组典型规则的示例:
login ; * ; !bobby ; MoTuWeThFr0800-2000
login ; * ; !root ; !Al0000-2400
http ; * ; !bobby ; MoTuWeThFr0800-2000
http ; * ; !root; !Al0000-2400
这些规则限制了用户bobby在0800到2000之间的时间登录,并且还限制了这些时间的Internet访问。Root可以随时登录,也可以随时浏览Internet。
注意:系统会使用这些规则将错误记录为syslog(3)。
使用Ubuntu Linux,可以为您的计算机分配时间限制,以防止一个或多个用户连接到您的系统。有了时间限制,您就可以例如限制孩子的计算机访问权限(简称为家长控制),甚至可以在某些小时内保护与服务器的连接。
手动配置
了解你会做什么
在本教程中,我们将使用PAM(可插拔身份验证模块,英语可插拔身份验证模块)。当用户连接时,它允许您控制用户身份验证。然后,我们将使用安全性配置文件来定义允许的登录时间。这些操作可以在任何版本的Ubuntu上执行,并且只需要一个简单的文本编辑器(vim,emacs,nano,gedit,kate等)。通过PAM模块启用限制小时数
首先,首先转到/etc/pam.d/
,所有可配置服务在哪里:
$ Ls /etc/pam.d/
atd common-account common-session gdm login ppp sudo
chfn common-auth cron gdm-autologin Other samba
chsh common-cupsys gnome-screensaver password passwd su
如果我们要阻止与计算机的连接,则必须更改gdm服务。编辑文件,使其为gdm并添加以下代码行(在文件末尾):
account required pam_time.so
GDM是Ubuntu,Edubuntu和Xubuntu的登录屏幕发行版。对于使用KDE的Kubuntu,将调用kdm服务,它将是它将打开的文件。您已经完成了配置PAM的工作!这样可以控制该服务的小时数。
如果您有服务器,则可能没有GUI。在这种情况下,未安装GDM / KDM,并且不会阻塞连接。为了防止连接到TTY,您必须修改同一文件的登录名,并添加与先前确认的相同的代码行。此操作也适用于已安装GUI并希望阻止访问登录屏幕和终端的人员。
配置访问时间
现在已经激活了PAM服务,我们只需要配置访问时间。打开/etc/security
。有几个配置文件可用:
$ Ls /etc/security/
access.conf namespace.conf pam_env.conf
group.conf namespace.init time.conf
limits.conf opasswd time.conf.bak
编辑文件time.conf
。一些解释和例子(英语)介绍。要设置访问时间表,请复制并粘贴以下代码行(与以往一样,在文件末尾):
*;*;user;scheduler
代替用户字段,输入要阻止的登录帐户。
如果要阻止多个用户,请在一行中输入他们的登录名,并用|分隔。操作员。例如,如果我要冻结Patrick,John和Emily的帐户:
*;*;Patrick|jean|emilie;scheduler
通过利弊,如果您想阻止除一个用户外的所有用户对系统的访问,请使用!在有关人员面前。例如,如果我要拒绝所有用户访问计算机,除了Nicolas和Xavier:
Nicolas *;*;!|xavier;scheduler
现在转到现场区域。在该字段中,将允许选择天数和小时数进行连接。您必须首先使用以下缩写指定星期几:
Mo : Monday Fr : Friday Wd : Sa/Su
Tu : Tuesday Sa : Saturday wk : Mo/Tu/We/Th/Fr
We : Wenesday Su : Sunday
Th : Thursday Al : All Days
注意不要混淆缩写Wk和Wd误导您!在Internet上特别难以识别:您可以轻松找到有冲突的信息!
然后,我们指定截止日期。这些格式应为24H,由4位数字组成。例如,将下午3:17限制为下午6:34,我们写:1517-1834。为了让Marie仅在星期二下午3:17到6:34进行连接,我们得到以下结果:
*;*;marie;Tu1517-1834
这些时间以外的连接将被禁止。对于用户,可以使用| 和!指示几次(然后!表示允许所有登录时间,但显示的时间除外)。
代码行开头的两个星号(通配符)分别是和tty服务字段。由于要阻止所有对系统的访问,因此无需指定要阻止的服务或tty。但是,如果要阻止使用特定服务,只需将其指定为以下示例:
login;tty1|tty4|tty5;marie;!Wd0000-2400
因此,用户结婚不能在周末期间连接到TTY,4和5。
限制时间表的一些示例
每天从1:20 pm到3:20 pm和从4:00 pm到8:30 pm都可以连接mathilde:
*;*;mathilde;Al1320-1520|Al1600-2030
Stone,Frank和Florian允许在工作日的2:00 pm至6:45 pm以及周末的2:00 pm至10:15 pm进行连接:
*;*;Stone|franck|florian;Wk1400-1845|Wd1400-2215
永远不允许Olive连接。杰西卡可以在星期三1:00 pm至4:00 pm登录:
*;*;olivier;!Al0000-2400
*;*;jessica;We1300-1600
2条不同的线路,每个用户使用两个不同的时间
当会话到期时(超过用户已连接的时间),PAM可以联系用户。虽然mathilde在允许的时间内连接,但完全可以免费超过这些时间!为此,我们将使用一个新程序:“ cron”。该应用程序每隔一段时间执行命令。在本例中,我们将使用“ skill-KILL-u”命令在会话结束时断开与用户的连接。处理非常简单。只需编辑文件“ / etc / crontab”。然后添加以下代码行:
Minute Hour Day * * (s) root skill -KILL -u User
和以前一样,替换“分钟”字段的时间表和所需的时间。然后,在禁止的日期之前填写日期,或者只需输入星号(*)来表示一周中的所有日期。最后,将登录帐户使用的字段更改为被阻止,瞧!
天不注意到工作的方式cron
!这是此程序使用的缩写列表:
mon : monday fri : friday
tue : tuesday sat : saturday
wed : wednesady sun : sunday
thu : thursday * : all hours
一些cron
工作示例(在上一节中有时间示例)
杰西卡可以在星期三1:00 pm至4:00 pm登录
->断开连接:星期二下午4:00。
00 16 * root * wed skill -KILL -u jessica
每天从1:20 pm到3:20 pm和从4:00 pm到8:30 pm都可以连接mathilde。
->断开连接:美国东部时间每天8:30 pm至3:20 pm。
20 15 * * * root skill -KILL -u mathilde
30 20 * * * root skill -KILL -u mathilde
周一至周五,Stone,Frank和Florian的连接时间为2:00 pm至6:45 pm,周末的连接时间为2:00 pm至10:15 pm
->断开连接(1):星期一,星期二,星期三,星期四和星期五的18:45。->断开连接(2):周六和周日晚上10:15。
45 18 * * mon,tue,wed,thu,fri root skill -KILL -u stone && skill -KILL -u franck && skill -KILL -u florian
15 22 * * sat,sun root skill -KILL -u stone && skill -KILL -u franck && skill -KILL -u florian
命令skill-KILL-u将用户与GUI以及TTY断开。它非常适合服务器管理员使用。但是,此命令是立即执行的,将在不通知的情况下断开连接。因此,最好是防止安装该计算机或网络用户的设备!
可以wall
通过cron
在时间段结束前几分钟启动的命令来阻止用户,该命令将显示在所有用户的终端中。
40 18 * * Mon,Tue,wed,thu,fri root echo "end of session in 5 minutes" | wall
为了防止用户使用GUI,可以notify-send
在软件包libnotify-bin中使用wall命令代替
40 18 * * Mon,Tue,wed,thu,fri stone DISPLAY=:0 notify-send "end of session in 5 minutes"
Ubuntu 11.10用户
我已经看到用户在使用Pam时遇到问题,并且看到了很多关于此的错误,为什么会这样呢???如此简单,Ubuntu 11.10不再支持GDM了,新的显示管理器是lightGDM,问题在于存储account required pam_time.so
我认为该指令的位置,/etc/pam.d/lightdm
或者/etc/pam.d/lightdm-autologin
如何出错?
因此,您可以检查以下2个LightGdm日志文件:
- /var/log/lightdm/lightdm.log
- /var/log/lightdm/x-0.log
或以调试模式运行LightGdm:
LightDM-调试
或报告错误:
Ubuntu的bug lightdm
我报告错误在这里,所以请您耐心等待...