我刚刚全新安装了 Ubuntu,现在当我尝试在终端仿真器中使用 sudo 时,它只是挂在那里,甚至不要求我输入密码。如果我切换到终端(Ctrl + Alt + F1)并登录,sudo 会按预期工作。有人能帮我解决这个问题吗?
答案1
您最近更改过主机名吗?我注意到主机名更改后 sudo 可能会挂起一段时间。但是,如果您更新 hosts 文件以反映主机名更改,挂起就会消失。
你可以用这个简单的一行代码来实现:
hostname | (echo -n "127.0.0.1 " && cat) | sudo tee -a /etc/hosts
答案2
如果您想检查它挂起的位置,我建议执行以下命令:
strace sudo
然后查看它可能挂在哪个系统调用上。这可能会为系统上正在发生的事情提供一个很好的线索。
根据您所看到的内容,我猜测您的系统上的主机名解析存在问题。检查 /etc/nsswitch.conf 和 /etc/resolv.conf 文件以确保它们配置正确。
我假设您已经检查过您的互联网连接。
答案3
我不确定您安装了哪个版本的 ubuntu,但是 sudo 中有一个错误(竞争条件),它会无限期地挂起并阻止选择。
答案4
我在使用 Ubuntu 16.04 时也遇到了这个问题。使用“top”命令,我发现两个进程“vnstat”和“NetworkManager”占用了 100% 的 CPU。因此我重新启动了系统,进入恢复模式并删除了包“vnstat”。重新启动系统后,系统现在运行正常。