Ошибка синтаксиса файла Sudoers на WSL

Итак, я испортил файл sudoers в подсистеме Windows для Linux. Я пытался что-то добавить, и парень из учебника сказал отредактировать файл sudoers с помощью nano / vim, и это то, что я сделал (позже я обнаружил, что вы должны редактировать его только с помощью 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

Я прочитал кучу статей, в которых говорилось, что мне придется бежать:

pkexec /usr/sbin/visudo

Но результат всегда был один и тот же:

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

Я перепробовал все, потратил два часа на чтение и ничего не мог сделать. Может кто-нибудь мне помочь? Как видите, я явно новичок, когда дело доходит до настоящего Linux.

1
задан 18 May 2019 в 19:33

2 ответа

Я нашел настоящее простое решение для своего случая.

Просто откройте консоль Windows (cmd), затем:

wsl -u root
# nano /etc/sudoers

И зафиксируйте файл =). Надежда это помогает.

3
ответ дан 3 December 2019 в 07:21

С моей стороны, поскольку команда wsl -u root visudo не сработала, я использовал следующую альтернативу:

я изменил пользователя по умолчанию на root, следуя инструкциям в этом ответ:

ubuntu config --default-user root

затем перезапустите службу LxssManager (из services.msc)

Когда я открываю WSL, по умолчанию подключаюсь как root, и я могу безопасно выполнить команду visudo из этого экземпляра WSL.

Я исправил неверную запись и сохранил ее.

После исправления мой WSL запускался нормально.

На всякий случай, вот стандартный sudoers файл, который у меня был в начале:

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults    env_reset
Defaults    mail_badpass
Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification
%sudo ALL=NOPASSWD: /sbin/start-stop-daemon
%sudo ALL=NOPASSWD: /etc/init.d/ssh

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d

Возможно, некоторые записи были добавлены командой "apt install".

не забудьте вернуться к исходному пользователю после операции:

ubuntu1804.exe config --default-user <username>

Команда ubuntu1804.exe может быть адаптирована к вашему дистрибутиву (20.04, другие linux и т.д...)

0
ответ дан 17 June 2020 в 10:54

Другие вопросы по тегам:

Похожие вопросы: