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

5166
Karlo

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

sudo visudo 

и испортил это. Теперь, когда я пытаюсь сделать это снова или открыть любой файл с помощью 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. Перезагрузись снова нормально с жесткого диска

Ура !!

8
Вы можете вставить содержимое файла sudoers на www.pastebin.com, и мы посмотрим, возможно, самым быстрым способом. Andrioid 15 лет назад 0
Я бы искал пропущенные # в комментариях, пропущенные двоеточия, знаки равенства, обратные косые черты продолжения строки и т. Д. Dennis Williamson 15 лет назад 0

4 ответа на вопрос

8
James

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

6
Andrioid

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

  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. Перезагрузитесь, наслаждайтесь!
Мне было интересно, когда он запрашивает пароль, прежде чем он дает однопользовательскую оболочку? James 15 лет назад 0
Этот метод не работает для всех дистрибутивов. Поскольку это хорошо известная секретная дверь, некоторые дистрибутивы заставляют войти в систему, прежде чем вы получите приглашение root. Похоже, это тот случай, Джеймс. Telemachus 15 лет назад 0
Не знал, что дистрибутивы начали это делать, всегда работал на меня в старые добрые времена Slackware Andrioid 15 лет назад 0
Вы должны порекомендовать использовать visudo over vim: http://en.wikipedia.org/wiki/Visudo nagul 15 лет назад 0
3
Telemachus

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

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

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

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