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


相关推荐: Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  如何在云主机快速搭建网站站点?  如何正确选择百度移动适配建站域名?  bing浏览器学术搜索入口_bing学术文献检索地址  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  Internet Explorer官网直接进入 IE浏览器在线体验版网址  Laravel怎么在Controller之外的地方验证数据  Laravel如何使用withoutEvents方法临时禁用模型事件  如何快速打造个性化非模板自助建站?  phpredis提高消息队列的实时性方法(推荐)  Python函数文档自动校验_规范解析【教程】  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  教学论文网站制作软件有哪些,写论文用什么软件 ?  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  如何在新浪SAE免费搭建个人博客?  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  Laravel如何自定义分页视图?(Pagination示例)  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  创业网站制作流程,创业网站可靠吗?  Python文本处理实践_日志清洗解析【指导】  Laravel怎么清理缓存_Laravel optimize clear命令详解  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  C++用Dijkstra(迪杰斯特拉)算法求最短路径  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  Laravel如何实现文件上传和存储?(本地与S3配置)  JavaScript如何实现类型判断_typeof和instanceof有什么区别  JavaScript Ajax实现异步通信  Laravel如何创建自定义中间件?(Middleware代码示例)  Android利用动画实现背景逐渐变暗  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  如何在IIS管理器中快速创建并配置网站?  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  魔毅自助建站系统:模板定制与SEO优化一键生成指南  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  如何在建站宝盒中设置产品搜索功能?  Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程  如何做网站制作流程,*游戏网站怎么搭建?  Laravel distinct去重查询_Laravel Eloquent去重方法  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  如何在宝塔面板中修改默认建站目录?  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  java ZXing生成二维码及条码实例分享  阿里云网站搭建费用解析:服务器价格与建站成本优化指南