从 13.10 升级到 14.04,用户名错误,无法访问任何文件

Jas*_*ord 4 permissions username

我无法登录旧用户名,因为它在登录屏幕上不存在。我无法重新创建旧用户名,因为我没有 root 权限。我尝试了很多进入 root 模式的方法,但都没有奏效。有没有办法将新用户名更改为旧用户名?

我通常会收到这样的消息:

sudo: error in /etc/sudo.conf, line 0 while loading plugin `sudoers_policy'
sudo: /usr/lib/sudo/sudoers.so must be only be writable by owner
sudo: fatal error, unable to load plugins
Run Code Online (Sandbox Code Playgroud)

Oli*_*Oli 7

首先重新启动进入恢复模式(在这个问题上有介绍)。直到你成为 root 的地步。

在那之后看看stat /usr/lib/sudo/sudoers.so。我懂了:

...
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
...
Run Code Online (Sandbox Code Playgroud)

从表面上看,这对你来说并不真实,但并不完全确定你做了什么。如果所有者不是 root 或者权限不是 0644,我们可以快速解决这个问题:

chown root: /usr/lib/sudo/sudoers.so
chmod 0644 /usr/lib/sudo/sudoers.so
Run Code Online (Sandbox Code Playgroud)

如果该权限/所有权是唯一的问题,那应该可以解决它。只需运行reboot即可引导回 Ubuntu-proper。

如果您完全取消了 /usr(chmod -r ... /usr例如,使用 ),您需要将所有权恢复到更多文件。值得庆幸的是,/usr相当扎根。您可以通过以下方式恢复大部分权限:

chown -r root /usr
chown daemon /usr/bin/at
chown libuuid /usr/sbin/uuidd
Run Code Online (Sandbox Code Playgroud)

如果你想知道我是如何得到那两个sudo find /usr -exec stat -c '%U %n' {} + | grep -v root落后者的,我在一个干净的系统上运行。如果您有最近的备份,我建议您针对您的备份运行该备份。