Linux如何禁止用户登录?nologin与锁定账户方法

发布时间 - 2025-07-03 00:00:00    点击率:

禁止用户登录linux系统主要有两种方法:使用/sbin/nologin和passwd -l。1. 使用usermod -s /sbin/nologin username可永久禁用用户登录,并可通过/etc/nologin.txt自定义提示信息;2. 使用passwd -l username临时锁定账户,密码前加!表示锁定,通过passwd -u username解锁;前者更彻底且支持提示信息,后者适合临时禁用并保留原shell配置;同时需注意系统路径差异及非密码认证的限制补充。

禁止用户登录在Linux系统管理中是一个常见的需求,通常是为了安全或维护目的。实现这一目标的方法主要有两种:使用/sbin/nologin shell和锁定用户账户。下面详细说明这两种方法的操作步骤和适用场景。


使用 /sbin/nologin 禁止用户登录

这种方法适用于需要永久或长期禁用用户登录的情况。当用户的默认shell设置为/sbin/nologin时,该用户将无法通过终端或SSH登录系统。

  • 修改用户的登录Shell
    使用 usermod 命令更改用户的默认shell:

    sudo usermod -s /sbin/nologin username

    这样一来,用户尝试登录时会收到一个提示信息,默认情况下是“此帐户目前不可用”。

  • 自定义提示信息(可选)
    如果需要给用户更具体的提示,可以编辑 /etc/nologin.txt 文件,并在里面写入想要显示的消息。例如:

    您的账号已被禁用,请联系管理员。

这种方式不会影响用户在系统中的其他权限,比如运行定时任务或作为服务账户使用。


使用 passwd -l 锁定用户账户

如果你只是想临时禁用某个用户登录,而不改变其登录Shell,可以使用 passwd -l 命令锁定账户。

  • 锁定用户账户命令

    sudo passwd -l username

    这个操作会在 /etc/shadow 文件中将用户的密码前加上一个感叹号(!),表示密码被锁定。

  • 解锁用户账户命令

    sudo passwd -u username

锁定账户后,用户仍然可以通过其他方式(如SSH密钥认证)登录,前提是这些认证方式没有被额外限制。因此,如果要完全禁止登录,建议结合PAM模块或其他机制进行补充控制。


nologin 与锁定账户的区别

两种方法各有优劣,选择取决于具体需求:

  1. /sbin/nologin 的优势

    • 更彻底地阻止登录行为,包括非密码认证方式(如SSH密钥)。
    • 可以提供友好的提示信息。
  2. passwd -l 的优势

    • 更适合临时性禁用,便于快速恢复。
    • 不会影响用户的登录Shell配置,保留原有环境。

需要注意的是,某些系统可能使用 /usr/sbin/nologin/bin/false 替代 /sbin/nologin,效果类似但细节略有不同。使用前建议确认路径是否正确。


基本上就这些。根据实际需求选择合适的方式即可,不复杂但容易忽略的是提示信息的设置和路径差异问题。


# linux  # 区别  # ssh  # 提示信息  # 用户登录  # 的是  # 两种  # 自定义  # 解锁  # 是一个  # 您的  # 如果你  # 已被 


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


相关推荐: EditPlus中的正则表达式实战(5)  Java遍历集合的三种方式  西安专业网站制作公司有哪些,陕西省建行官方网站?  如何生成腾讯云建站专用兑换码?  手机软键盘弹出时影响布局的解决方法  如何用PHP快速搭建CMS系统?  公司门户网站制作流程,华为官网怎么做?  利用python获取某年中每个月的第一天和最后一天  如何快速查询网站的真实建站时间?  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  如何挑选最适合建站的高性能VPS主机?  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  百度浏览器如何管理插件 百度浏览器插件管理方法  Android仿QQ列表左滑删除操作  详解jQuery中基本的动画方法  如何在搬瓦工VPS快速搭建网站?  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  bing浏览器学术搜索入口_bing学术文献检索地址  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  Firefox Developer Edition开发者版本入口  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  网站制作大概多少钱一个,做一个平台网站大概多少钱?  java中使用zxing批量生成二维码立牌  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  如何实现建站之星域名转发设置?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  如何在阿里云虚拟服务器快速搭建网站?  图册素材网站设计制作软件,图册的导出方式有几种?  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  怎么用AI帮你设计一套个性化的手机App图标?  如何基于云服务器快速搭建网站及云盘系统?  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  如何快速上传自定义模板至建站之星?  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  Bootstrap整体框架之CSS12栅格系统  如何用搬瓦工VPS快速搭建个人网站?  如何在新浪SAE免费搭建个人博客?  Python正则表达式进阶教程_复杂匹配与分组替换解析  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  如何为不同团队 ID 动态生成多个独立按钮  Laravel如何创建自定义Artisan命令?(代码示例)  Swift中循环语句中的转移语句 break 和 continue