如何重新获得 sudo 权限?

如何重新获得 sudo 权限?

我正在使用 WSL1,在某个时候我做了一些事情,这意味着我根本无法再使用“sudo”命令(不幸的是,我不记得我做了什么或什么时候导致了这个问题,但它肯定曾经起作用——我对这一切都很陌生,所以很抱歉!)。

当我运行以“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

我花了一段时间寻找解决方案,但到目前为止似乎没有任何效果。例如,我尝试使用

pkexec visudo

但任何类似的事情都会引发这个错误:

Error getting authority: Error initializing authority: Could not connect: No such file or directory

我看到另一个线程建议进入 Windows 命令行并输入以下内容:

wsl -u root

但那只是回归

User not found.

有什么方法可以恢复我的 sudo 权限,或者我做了一些无法挽救的事情,需要我卸载 WSL 并重新启动?谢谢。

更多信息 谢谢大家的回答。看来我必须清除 WSL 并重新开始(教会我不要弄乱我不懂的东西!)。@NotTheDr01ds – 你问的是 cat /etc/passwd 和 stat /etc/passwd 显示的内容。cat /etc/passwd 显示以下内容

root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin sys:x:3:3:sys:/dev:/usr/sbin/nologin sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/usr/sbin/nologin man:x:6:12:man:/var/cache/man:/usr/sbin/nologin lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr/sbin/nologin uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin proxy:x:13:13:proxy:/bin:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin backup:x:34:34:backup:/var/backups:/usr/sbin/nologin list:x:38:38:邮件列表管理器:/var/list:/usr/sbin/nologin irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin gnats:x:41:41:Gnats 错误报告系统(管理员):/var/lib/gnats:/usr/sbin/nologin nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin systemd-network:x:100:102:systemd 网络管理,,,:/run/systemd/netif:/usr/sbin/nologin systemd-resolve:x:101:103:systemd 解析器,,,:/run/systemd/resolve:/usr/sbin/nologin syslog:x:102:106::/home/syslog:/usr/sbin/nologin messagebus:x:103:107::/nonexistent:/usr/sbin/nologin _apt:x:104:65534::/nonexistent:/usr/sbin/nologin lxd:x:105:65534::/var/lib/lxd/:/bin/false uuidd:x:106:110::/运行/uuidd:/usr/sbin/nologin dnsmasq:x:107:65534:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin Landscape:x:108:112::/var/lib/landscape:/usr/sbin/nologin sshd:x:109:65534::/run/sshd:/usr/sbin/nologin pollinate:x:110:1::/var/cache/pollinate:/bin/false peterjatkinson:x:1000:1000:,,,:/home/peterjatkinson:/bin/bash

stat /etc/passwd 显示:

文件:/etc/passwd 大小:1574 块:8 IO 块:512 常规文件 设备:2h/2d Inode:7036874417973417 链接:1 访问:(0644/-rw-r--r--) Uid:(1000/peterjatkinson) Gid:(0/root) 访问:2020-07-12 10:01:59.045006400 +0100 修改:2020-07-12 10:01:59.045800500 +0100 更改:2021-07-20 17:26:32.778110500 +0100 出生:-

如果这能帮助我避免重新安装 WSL,请告诉我!再次感谢。

答案1

刚刚pkexec在 WSL1 中尝试过,得到了和你完全相同的错误,所以pkexec在 WSL1 中不受支持。

wsl -u root对我来说工作正常,没有“未找到用户”的消息。

此消息意味着您以某种方式破坏了用户列表,或更改了某些关键系统文件的权限。分析问题几乎是不可能的,尤其是因为 root似乎无法访问。

我和 DanielB 一样建议您删除这个 WSL 发行版并从头开始。

要从磁盘正确删除已安装的 Linux 发行版,请进入 Windows 设置 > 应用程序部分 > 应用程序和功能,向下滚动到您的发行版,单击它,然后单击现在显示的“卸载”按钮。

相关内容