Изменен файл sudoers и больше не могу его открыть; не могу открыть файл с помощью root

8

Я изменил настройки в файле sudoers, используя

судо визудо 

и испортил это. Теперь, когда я пытаюсь сделать это снова или открыть любой файл с помощью sudo, я не могу открыть его больше, и я получаю это сообщение об ошибке:

>>> Файл sudoers: синтаксическая ошибка, строка 7 

Что теперь?

Есть ли способ выйти из этой проблемы (отменить настройки), или мне нужно установить свежую копию linux?

Причина, по которой я получил все это, - я нажал «Q», когда мне сказали, что произошла какая-то ошибка, что было очень глупо с моей стороны.

Спасибо.

РЕДАКТИРОВАТЬ

Мой файл sudoers ничем не отличается от обычного файла sudoers. Я просто добавил строку timestamp_timeout = 0 в этот файл, и все эти проблемы возникли. Я сделал то, что предложил Джеймс, и даже удалил эту строку (timestamp_timeout = 0). Я изменил разрешение файла на 0440, которое он запрашивал, и затем загрузился нормально. Затем я получаю то же сообщение об ошибке

sudoers file: syntax error, line 7 
sudo: parse error in /etc/sudoers near line 7
как указано выше.

Что мне теперь делать ??

РЕДАКТИРОВАТЬ 2 Решено

Вот что я сделал:

  1. Загрузка с использованием livecd
  2. Удалить старый файл sudoers
  3. Сделал новый файл sudoers и скопировал все в этот файл, т.е. минимальные настройки конфигурации, которые я, к счастью, сохранил в другом файле
  4. Изменено разрешение файла на 0440
  5. Перезагрузитесь снова нормально с жесткого диска

Ура !!

Karlo
источник
Вы можете вставить содержимое файла sudoers на www.pastebin.com, и мы посмотрим, возможно, самым быстрым способом.
Андриоид
Я буду искать пропущенные # в комментариях, пропущенные двоеточия, знаки равенства, обратные косые черты продолжения строки и т. Д.
Приостановлено до дальнейшего уведомления.

Ответы:

8

Предполагая, что вы не предоставили пользователю root права доступа, самый простой способ это исправить - использовать живой компакт-диск, такой как Knoppix . Загрузите диск. Смонтируйте локальный диск, отредактируйте файл, размонтируйте диск и перезагрузите компьютер.

Джеймс
источник
6

Просто загрузите компьютер в « однопользовательском режиме », выполнив следующие действия:

  1. перезагрузка
  2. Когда Grub запускается, нажмите ESC (или выход)
  3. Нажмите «e» для редактирования текущей строки
  4. Добавьте 'single' в конец строки, содержащей 'linux'
  5. Загрузка (нажмите b)

Это запустит компьютер только с одним пользователем root. Оттуда выполните следующие действия:

  1. / usr / bin / vim / etc / sudoers (или используйте nano, вам будет проще) решить проблему
  2. Если вы не уверены в проблеме, попробуйте скопировать включенный пример sudoers из "/ usr / share / doc / sudo / examples" (отличается) и, конечно, добавьте туда своего пользователя.
  3. Сохраните файл, выйдите из Vim
  4. Перезагрузитесь, наслаждайтесь!
Andrioid
источник
Мне было интересно, когда он запрашивает пароль, прежде чем он дает однопользовательскую оболочку?
Джеймс
Этот метод не работает для всех дистрибутивов. Поскольку это хорошо известная секретная дверь, некоторые дистрибутивы заставляют войти в систему, прежде чем вы получите приглашение root. Похоже, это тот случай, Джеймс.
Телемах
Не знал, что дистрибутивы начали это делать, всегда работал на меня в старые добрые времена Slackware
Andrioid
Вы должны порекомендовать использовать visudo over vim: en.wikipedia.org/wiki/Visudo
3

Идея Джеймса использовать live cd (при условии, что учетная запись root не включена) является хорошей. Я бы добавил несколько пунктов.

  • Во-первых, вам может повезти, и резервная копия файла / etc / sudoers автоматически сохраняется при редактировании. Проверьте в / etc файл, который выглядит следующим образом sudoers~ (вы можете войти cdв этот каталог и запускать ls -A без полномочий root, даже если вы не можете читать или редактировать файлы как обычный пользователь). Некоторые редакторы создадут такую ​​резервную копию, если вообще возможно, так что вы можете иметь один, не создав его явно.
  • Во-вторых, если вы не знаете, как редактировать файл, вы можете разместить его (или область вокруг строки 7) здесь или где-либо еще. Несмотря на то, что сам файл имеет отношение к безопасности, в нем нет паролей, поэтому его публикация не повредит.
  • И наконец, обратите внимание, что сообщение об ошибке, подобное тому, которое вы видели, не обязательно означает, что сама проблема буквально находится в строке 7. Ошибка может быть в строке 4, но она была отключена, так сказать, в строке 7.
Телемах
источник
0

Попробуйте нажать e для редактирования. Это должно позволить вам отредактировать файл и исправить ошибки.

Torandi
источник
Нажав 'e', ​​когда вы увидите ошибку, после того, как вы закончите редактирование, вы вернетесь обратно, чтобы вы могли исправить ваши ошибки. К сожалению, это явно не упоминается вам.
0

Для тех из нас, кто не имеет консоли или локального доступа к серверу для загрузки на уровне выполнения 1 или имеет корневой набор (или доступные учетные данные / сертификаты), используйте pkexec visudo или pkexec vi / etc / sudoers, лучше использовать visudo как это делает проверка ошибок в файле.

скоро
источник
Но как вы можете pkexecделать ставки, если вы не знаете пароль root?
Скотт