我输入了一个错误,
chown -R username /*
没有./*
以 root 身份运行,结果把一切都搞乱了。
现在,无法以 root 身份登录并改回所有权。有没有无需全新安装即可修复的方法?
我也可以以用户身份登录,并且没有改变拥有组。
sudo 的输出
sudo: /etc/sudoers is owned by uid 1000, should be 0
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
答案1
现在“拥有”所有文件的用户应该能够访问/etc/shadow
,其中包含所有用户及其设置,包括密码哈希。编辑/etc/shadow
(例如nano /etc/shadow
)。您将得到类似以下内容:
username:passwordhash:...
复制您的密码哈希(第二个参数,以类似的内容开头,$6$...
以替换密码哈希root
,保存文件并重新启动。
您现在可以以 root 身份登录并sudoers
使用以下命令修复文件:
chmod 440 /etc/sudoers
chown root:root /etc/sudoers
sudo
现在应该可以再次工作了(重启后)。除非这是相当新的安装,否则仍然会有很多其他问题需要处理 - 但至少你现在有 sudo 了。
(谢谢,@Arjan,@Nikita Kipriyanov)。
如果这不起作用:
基本上,你陷入困境了...因此,以下是你可能想要做的事情(请注意,我是凭记忆输入这段文字的 - 并使用谷歌搜索以确保其正确无误,但有时可能会失败):
1)重新启动计算机..
2)在 GRUB 菜单上,按 e 进入编辑模式
3)使用箭头键导航到以“linux”开头的行,然后在该行上按 e
4)转到行尾并添加以下内容:代码:
rw init=/bin/bash
5)按 ENTER 和 b(或类似键)以此设置启动计算机... 6)计算机启动到终端后,使用以下命令:代码:
chmod 440 /etc/sudoers chown root:root /etc/sudoers passwd root shutdown -r now
passwd 命令会要求您输入 root 密码(以防再次发生类似情况)最后一个命令会重新启动您的计算机。此后,您应该能够再次重用以 sudo 开头的命令。