Итак, я испортил файл 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.
Я нашел настоящее простое решение для своего случая.
Просто откройте консоль Windows (cmd), затем:
wsl -u root
# nano /etc/sudoers
И зафиксируйте файл =). Надежда это помогает.
С моей стороны, поскольку команда 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 и т.д...)