WSL 上的 Sudoers 文件语法错误

Aug*_*ssa 10 permissions command-line sudo windows-subsystem-for-linux

所以,我在 linux 的 windows 子系统中弄乱了我的 sudoers 文件。我试图添加一些东西,教程的家伙说用nano/vim编辑sudoers文件,这就是我所做的(后来我发现你应该只用visudo编辑它,很好)。当我保存时,我意识到我不能再使用“sudo”了,终端会抱怨说:

>>> /etc/sudoers: syntax error near line 33 <<<
sudo: parse error in /etc/sudoers near line 33
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
Run Code Online (Sandbox Code Playgroud)

我读过很多文章说我必须运行:

pkexec /usr/sbin/visudo
Run Code Online (Sandbox Code Playgroud)

但结果总是一样的:

Error getting authority: Error initializing authority: Could not connect: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我什么都试过了,花了两个小时读东西,却什么也做不了。谁能帮我?如您所见,当涉及到真正的 linux 时,我显然是新手。

小智 29

我为我的案例找到了一个非常简单的解决方案。

只需打开 Windows 控制台(cmd),然后:

wsl -u root visudo
Run Code Online (Sandbox Code Playgroud)

并修复文件。

请注意,visudo不会捕获所有错误。为避免被锁定在 之外sudo,请保持根 shell ( sudo -s) 或visudo打开直到您彻底测试新配置。