![Sudo 不再可用,用户无法安装或修改大多数文件](https://linux22.com/image/1438/Sudo%20%E4%B8%8D%E5%86%8D%E5%8F%AF%E7%94%A8%EF%BC%8C%E7%94%A8%E6%88%B7%E6%97%A0%E6%B3%95%E5%AE%89%E8%A3%85%E6%88%96%E4%BF%AE%E6%94%B9%E5%A4%A7%E5%A4%9A%E6%95%B0%E6%96%87%E4%BB%B6.png)
我最近开始弄乱虚拟主机上的一些文件,并且我以普通/非 root 用户身份登录。起初一切都很好,我可以使用以下命令安装我需要的任何东西:
sudo apt-get install tree
但我不知何故弄乱了一个文件,现在当我这样做时,我收到以下错误:
sudo: can't open /etc/sudoers: Permission denied
我不知道如何诊断这个问题,我已经在谷歌上搜索了解决方案,但一切都是关于 sudo 是什么,与如何重新允许用户使用它无关。
如果您想在评论中了解任何其他详细信息,请告诉我:)
编辑:
ls -l /etc/sudoers
-r--r----- 1 root root 577 Apr 20 03:42 /etc/sudoers
答案1
有很多事情可能会失败,但是考虑到您的输出ls -l /etc/sudoers
,大多数事情都被排除了。
首先进行一些快速检查:
- 打印什么
type sudo
? - 打印什么
getent group 0
?
然后,为了正确查看发生了什么,您可以使用 root 用户身份登录su -
,然后运行它吗?
# apt-get install ltrace
# ltrace -u <username> sudo true 2>&1 | egrep '(sudo|stat|set.*[ug].*id)'
和/或
# apt-get install strace
# strace -u <yourusername> sudo true 2>&1 | egrep '(sudo|set.*[ug].*id)'
并将输出添加到您的问题中。
答案2
作为最后的手段,您可以将/etc/sudoers
文件复制到备份位置,然后apt-get --reinstall install sudo