麒麟OS执行sudo命令卡顿超5秒,主因是DNS反向解析或PAM模块阻塞;应禁用fqdn与requiretty、关闭pwfeedback动画、重置PAM模块顺序为auth [success=done default=ignore] pam_unix.so nullok_secure、auth [default=die] pam_deny.so、account required pam_permit.so。

麒麟OS执行sudo命令时卡顿超过5秒,通常不是权限配置错误,而是系统在后台进行DNS反向解析或PAM模块阻塞所致,直接导致输入密码后长时间无响应。
检查并禁用sudo的DNS反向解析
sudo默认会尝试对客户端IP做反向DNS查询,若本地DNS服务器响应慢或hosts未配置,该步骤将超时等待,默认阻塞3~8秒。
打开sudo配置文件:sudo visudo
在文件开头空白处新增一行:Defaults !fqdn
再另起一行添加:Defaults !requiretty
保存退出后,立即生效,无需重启。这一步跳过完整域名验证和终端类型强制检查,能消除80%以上的延迟。
关闭sudo的pwfeedback提示动画(仅限UKUI桌面)
UKUI桌面环境下,sudo密码输入时默认启用视觉反馈动画,该动画依赖D-Bus和图形服务,在高负载或GPU驱动异常时会卡住sudo主进程。
方法一:临时禁用(当前会话有效)
执行命令:gsettings set org.ukui.sudo pwfeedback false
方法二:全局禁用(推荐)
编辑用户级配置:nano ~/.config/autostart/disable-sudo-pwfeedback.desktop
填入内容:
[Desktop Entry]
Type=Application
Name=Disable Sudo PW Feedback
Exec=gsettings set org.ukui.sudo pwfeedback false
Hidden=false
X-GNOME-Autostart-enabled=true
重置PAM sudo模块顺序
麒麟OS部分版本中,/etc/pam.d/sudo文件末尾被误插入了network或ldap相关模块,导致每次sudo都触发网络认证等待。
第一步:备份原配置
sudo cp /etc/pam.d/sudo /etc/pam.d/sudo.bak
第二步:用visudo安全编辑PAM文件
sudo visudo -f /etc/pam.d/sudo
第三步:删除所有以“auth [default=ignore]”或“account [default=ignore]”开头、且路径含“pam_ldap.so”“pam_nw.so”“pam_radius_auth.so”的行——【这些模块在单机环境完全不需要】
第四步:确认文件末尾仅保留以下三行(顺序不可颠倒):
auth [success=done default=ignore] pam_unix.so nullok_secure
auth [default=die] pam_deny.so
account required pam_permit.so
验证修复效果
执行:time sudo -n true
若输出显示real时间小于0.150s,说明修复成功。
再运行:sudo -l
观察是否秒级返回可执行命令列表,不出现“resolving...”或光标长时间静止。











