Змінено файл sudoers і більше не можна його відкрити; не вдається відкрити жоден файл за допомогою root


8

Я змінив налаштування у файлі sudoers, використовуючи

судо візудо 

і переплутав це. Тепер, коли я намагаюся зробити це знову або відкрити будь-який файл за допомогою sudo, я більше не можу його відкрити, і я отримую це повідомлення про помилку:

>>> файл sudoers: синтаксична помилка, рядок 7 

Що тепер?

Чи є спосіб вийти з цієї проблеми (відновити налаштування) чи мені потрібно встановити нову копію Linux?

Причиною, що я все це отримав, є те, що я натискав "Q", коли він говорив мені, що була якась помилка, яка була дуже дурною для мене.

Дякую.

EDIT

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

sudoers file: syntax error, line 7 
sudo: parse error in /etc/sudoers near line 7
як зазначено вище.

Що мені робити зараз ??

EDIT 2 Вирішено

Ось що я зробив:

  1. Завантажте за допомогою livecd
  2. Видаліть старий файл судорів
  3. Створив новий файл sudoers і скопіював усе у цей файл, тобто мінімальні налаштування конфігурації, які я, на щастя, зберегла в іншому файлі
  4. Змінено дозвіл на 0440
  5. Перезавантажте знову звичайно з жорсткого диска

Ура !!


ви можете вставити вміст свого файлу sudoers на www.pastebin.com і переглянемо, мабуть, найшвидший спосіб.
Андріоїд

Я б шукав пропущені # у коментарях, відсутні товсті кольори, знаки рівності, зворотні риски продовження лінії тощо.
Призупинено до подальшого повідомлення.

Відповіді:


8

Припустимо, що ви не дали кореневому користувачеві пароль, тоді найпростіший спосіб виправити це за допомогою живого компакт-диска, такого як Knoppix . Завантаження CD. Встановіть локальний диск, відредагуйте файл, відключіть диск та перезавантажте.


6

Просте завантаження комп'ютера в режимі " один користувач ", виконуючи наступні дії:

  1. Перезавантажте
  2. Коли Grub запускається, натисніть клавішу ESC (або втекти)
  3. Натисніть "e" для редагування поточного рядка
  4. Додайте "єдиний" до кінця рядка, що містить "linux"
  5. Завантаження (натисніть b)

Це запустить комп'ютер лише з одним користувачем, root. Звідти виконайте наступні кроки:

  1. / usr / bin / vim / тощо / sudoers (або використовувати нано, можливо, вам буде простіше), щоб вирішити проблему
  2. Якщо ви не впевнені в проблемі, спробуйте скопіювати включений приклад sudoers з "/ usr / share / doc / sudo / applications" (змінюється) і, звичайно, додайте туди свого користувача.
  3. Збережіть файл, вийдіть з Vim
  4. Перезавантажте, насолоджуйтесь!

Мені було цікаво, коли він запитує пароль, перш ніж він надасть оболонку єдиному користувачеві?
Джеймс

Цей метод працює не для всіх дистрибутивів. Оскільки це добре відома задня дверцята, деякі дистрибутиви примушують увійти до того, як ви отримаєте кореневу підказку. Це звучить так, як у вас, Джеймсе.
Телемах

Не знав, що дистрибуція почала це робити, завжди працювала на мене в старі добрі Slackware дні
Andrioid

Рекомендуйте використовувати visudo over vim: en.wikipedia.org/wiki/Visudo

3

Ідея Джеймса використовувати живий компакт-диск (якщо припустити, що кореневий обліковий запис не ввімкнено) є хорошою. Я додав би кілька пунктів.

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

0

Спробуйте натиснути e для редагування. Це дозволить вам відредагувати файл та виправити помилки.


Якщо натиснути "e", коли з’явиться повідомлення про помилку, після завершення редагування ви повернетеся назад, щоб ви могли виправити свої помилки. На жаль, це вам прямо не згадується.

0

Для тих із нас, хто не має консольного або локального доступу до сервера для завантаження рівня 1 або має набір root (або наявні облікові дані / certs), використовуйте pkexec visudo або pkexec vi / etc / sudoers, краще візуальне як це робить перевірка помилок у файлі.


Але як ви можете pkexecзробити свої ставки, якщо ви не знаєте кореневого пароля?
Скотт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.