如何在Linux中限制登录时间 Linux pam_time模块使用

发布时间 - 2025-08-29 00:00:00    点击率:
pam_time模块可限制Linux用户登录时间,通过配置/etc/pam.d/sshd等文件启用account required pam_time.so,并在/etc/security/time.conf中定义规则,如sshd;*;alice;MoTu0900-1700,实现按时间、服务和用户控制访问,增强系统安全。

在Linux系统中,可以通过PAM(Pluggable Authentication Modules)的pam_time模块来限制用户登录时间。这个模块允许管理员根据时间、终端或服务类型控制用户的访问权限,适用于SSH登录、控制台登录等场景。

启用pam_time模块

pam_time模块默认通常已经安装,但需要配置PAM的配置文件来启用。主要配置文件是/etc/pam.d/login或其他相关服务文件(如/etc/pam.d/sshd)。

在对应的服务配置文件中添加或确认存在以下行:

account required pam_time.so

这行表示在认证过程中调用pam_time模块进行时间限制检查。例如,要限制SSH登录时间,编辑/etc/pam.d/sshd

account required pam_time.so

配置时间限制规则(/etc/security/time.conf)

实际的时间规则定义在/etc/security/time.conf文件中。该文件语法格式如下:

services;ttys;users;times

字段说明:

  • services:服务名,如login、sshd、cron等
  • ttys:终端设备,如tty1、pts/0,或ALL表示所有
  • users:用户名或组(组前加@),如alice、@developers
  • times:允许访问的时间段,格式为Wk0000-2400,其中Wk代表星期(Mo,Tu,We,Th,Fr,Sa,Su),时间用24小时制

示例规则:

sshd;*;alice;MoTu0900-1700

表示用户alice只能在周一到周二的9:00到17:00通过SSH登录。

login;*;@developers;Al0900-1800

表示developers组的成员在每天的9:00到18:00可以通过控制台登录(Al表示每天)。

如果想禁止某用户在周末登录:

*;*;bob;!SaSu0000-2400

测试与调试

配置完成后,建议先用非关键账户测试。可以使用SSH尝试登录,看是否在规定时间外被拒绝。

若登录失败但不确定原因,可查看系统日志:

tail /var/log/auth.log

或在CentOS/RHEL系统中:

tail /var/log/secure

日志中会记录pam_time拒绝访问的具体信息。

注意:错误的配置可能导致用户无法登录,建议在修改前备份配置文件,并确保有其他管理通道(如控制台或备用账户)可用。

基本上就这些。合理使用pam_time可以在不影响用户体验的前提下增强系统安全性。


# linux  # centos  # ai  # linux系统  # red  # var  # th  # ssh  # 配置文件  # 可以通过  # 用户登录  # 终端设备  # 适用于  # 并在  # 或其他  # 可以使用  # 但不  # 先用 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel中间件如何使用_Laravel自定义中间件实现权限控制  googleplay官方入口在哪里_Google Play官方商店快速入口指南  如何在宝塔面板中修改默认建站目录?  Laravel如何保护应用免受CSRF攻击?(原理和示例)  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  如何获取PHP WAP自助建站系统源码?  打造顶配客厅影院,这份100寸电视推荐名单请查收  详解jQuery停止动画——stop()方法的使用  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  如何在新浪SAE免费搭建个人博客?  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  Bootstrap CSS布局之列表  实例解析Array和String方法  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  Laravel如何发送系统通知?(Notification渠道示例)  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  如何用AI帮你把自己的生活经历写成一个有趣的故事?  如何在万网自助建站平台快速创建网站?  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  想要更高端的建设网站,这些原则一定要坚持!  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  node.js报错:Cannot find module 'ejs'的解决办法  网站页面设计需要考虑到这些问题  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  如何用5美元大硬盘VPS安全高效搭建个人网站?  Firefox Developer Edition开发者版本入口  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  EditPlus中的正则表达式 实战(1)  香港服务器如何优化才能显著提升网站加载速度?  PHP正则匹配日期和时间(时间戳转换)的实例代码  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  Laravel如何实现API速率限制?(Rate Limiting教程)  PythonWeb开发入门教程_Flask快速构建Web应用  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  如何在Windows环境下新建FTP站点并设置权限?  HTML 中动态设置元素 name 属性的正确语法详解  如何用JavaScript实现文本编辑器_光标和选区怎么处理  如何在服务器上配置二级域名建站?  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  如何快速完成中国万网建站详细流程?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  如何用美橙互联一键搭建多站合一网站?  如何在Windows 2008云服务器安全搭建网站?  Laravel如何使用.env文件管理环境变量?(最佳实践)