You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debian Stretch+LightDM免密登录异常求助:登录/sudo均无需密码

这问题我之前帮朋友排查过类似的,核心是系统的PAM(可插拔认证模块)配置或者用户权限出了问题,咱们一步步来排查修复:

1. 先检查sudo权限配置

sudo免密且sudo -K无效,大概率是你的用户被设置了无需密码即可执行所有sudo命令。咱们来确认:

  • 用visudo命令打开sudoers配置文件(这个命令会自动检查语法,比直接编辑更安全),看看有没有类似下面的行:
    你的用户名 ALL=(ALL) NOPASSWD:ALL
    
  • 还要检查/etc/sudoers.d/目录下的自定义配置文件,执行cat /etc/sudoers.d/*查看有没有同样的NOPASSWD规则。
    如果找到的话,把这行注释掉(前面加#)或者直接删除,保存退出后sudo就会要求验证密码了。
2. 排查PAM登录认证配置

不管是LightDM图形登录还是命令行登录,都受PAM模块控制,咱们重点检查几个关键文件:

  • 先看通用认证配置/etc/pam.d/common-auth,执行cat /etc/pam.d/common-auth,正常的配置应该是类似:
    auth    [success=1 default=ignore]      pam_unix.so nullok_secure
    auth    requisite                       pam_deny.so
    auth    required                        pam_permit.so
    
    如果里面出现了nullok(注意不是nullok_secure),就意味着允许空密码登录,这时候把nullok改成nullok_secure或者直接去掉。
  • 再检查LightDM的专属PAM配置/etc/pam.d/lightdm,确保里面包含@include common-auth这一行,要是被改成了跳过验证的规则(比如auth required pam_permit.so),改回默认的包含通用配置即可。
  • 命令行登录的话,检查/etc/pam.d/login,同样确保包含@include common-auth,没有异常的跳过验证配置。
3. 确认用户密码状态

有时候用户密码被意外清空了,系统也会允许免密登录。执行passwd -S 你的用户名,看输出的第二个字段:

  • 如果是NP,说明你的用户是空密码状态,这时候执行passwd 你的用户名重新设置一个密码即可。
  • 如果是P,说明密码正常,那问题还是出在PAM或sudo配置上。
4. 重置PAM配置(极端情况)

如果上面的排查都没解决,可能是PAM配置被改得乱七八糟了,可以尝试重新安装PAM相关包来恢复默认配置:

sudo apt-get install --reinstall libpam-modules libpam-modules-bin

执行完后重启系统,看看登录和sudo验证是否恢复正常。


内容的提问来源于stack exchange,提问作者mpjdem

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:43:56