sudo 花费很长时间

sudo 花费很长时间

在 Ubuntu 9 64 位 Linux 机器上,sudo 需要更长的时间才能启动。 “sudo echo hi” 需要 2-3 分钟。 sudo 上的 strace 告诉 poll(“/etc/pam.d/system-auth”,POLLIN)在 5 秒后超时,并且对同一系统调用有多个调用(可能是一个循环)(这会导致 2-3 分钟的延迟)。

知道为什么 sudo 必须等待 /etc/pam.d/system-auth 吗?有什么可调参数可以让 sudo 更快地超时吗?

谢谢塞缪尔

答案1

sudo 运行缓慢的最大原因是系统无法解析自己的主机名。 您是否在 中包含了本地主机名/etc/hosts? 如果没有,我建议将其与 IP 一起添加,127.0.1.1我在所有系统上都是这样做的。 我添加了包含短主机名和完整限定域名 (FQDN) 的条目。 这样 10 次中有 9 次可以消除 sudo 访问调用的延迟。

答案2

我禁不住想,poll() 调用可能只是个转移注意力的花招。

每当我看到 sudo 特别慢时,总是 DNS 出了问题。无论是 /etc/resolv.conf 中列出的旧的、死机的服务器,还是配置错误的防火墙阻止了 53 端口出站,还是其他完全不同的原因,我总是发现它dig google.comsudo echo foo慢。

即使不是 DNS,我怀疑速度缓慢也是与网络有关,也可能与身份验证有关(正如 Kevin M 所建议的那样),在这种情况下,poll() 调用可能不是一个转移注意力的幌子。

尝试在运行 sudo 时运行 tcpdump 并查看显示的内容。

答案3

就我而言,重新启动 systemd-logind 暂时解决了该问题。

sudo systemctl restart systemd-logind

相关内容