Ubuntu: захистив мій файл sudoers, як це можна виправити?


11

Я редагував свій /etc/sudoersфайл і зберігав його, але в ньому є синтаксична помилка. Тепер я не можу, sudo vim /etc/sudoersтому що sudo вважає, що файл sudoers недійсний.

Як я можу це виправити?


Відповіді:


6

Завантажте систему в єдиний режим, а потім відредагуйте її.


Дякую, мій Ubuntu працює під Virtualbox. Як перейти в режим єдиного користувача?
fred basset


Я не отримую варіантів grub під час завантаження, проте він завантажується прямо в Ubuntu ...
fred basset

Спробуйте утримувати <Ctrl> або щось подібне.
Ігнасіо Васкес-Абрамс

1
@red basset: Коли vm починає натискати Esc кілька разів, що повинно перенести вас у grub, а потім виберіть опцію режиму відновлення.
користувач9517

21

Ніколи не слід редагувати файл судорів безпосередньо. Використовуйте visudo- це захистить вас від цих синтаксичних помилок у майбутньому.

Щоб відновитись із цієї ситуації, завантажте в однокористувацький режим і відредагуйте файл, або завантажте його з livecd і зробіть те ж саме.


Дякую, мені було цікаво, що візудо робив інакше. Мені зараз потрібно розібратися, як завантажуватися в єдиний користувальницький режим. Мій Ubuntu працює під Virtualbox.
fred basset

1
visudo змушує вас редагувати копію файлу sudoers. Він замінить файл sudoers лише в тому випадку, якщо він перевіряє, коли ви його зберігаєте. Він буде використовувати редактор, вказаний вашою змінною EDITOR, тому ви можете використовувати бажаний редактор. Його також можна використовувати в режимі перевірки, якщо ви редагували файл і хочете бути впевнені, що він все-таки дійсний.
BillThor


1

До речі, якщо у вас є кореневий пароль, просто увійдіть з ним і встановіть його назад таким, яким він був.

chmod 0440 / тощо / sudoers

Це дозволить уникнути завантаження в режимі однокористування або в гіршому випадку, завантаження з livecd.

У моєму випадку я не міг дозволити собі збити сервер.


1

Якщо у вас встановлено Docker і ваш користувач є членом dockerгрупи, ви можете легко вийти з цього соління (та деяких інших) без перезавантаження або того, що у вас є:

  1. $ docker run -it --rm -v '/etc/:/root/host.etc/' debian bash
  2. apt-get update && apt-get install [vim|nano|whatever]
  3. cd ~/host.etc/
  4. Відновіть проблемні файли
  5. exit

Докер? Ви бачили Докера десь в оригінальному запитанні?
Мисливець на олень

2
Оскільки питання не визначає нічого про навколишнє середовище Аскер і тепер 2015 року, тобто досить багато людей мають Docker встановлений, я розумію , ні ваше ставлення до мене , ні ваше презирство мого вкладу. Це зовсім не незбагненно, щоб хтось інший у цій ситуації встановив програмне забезпечення, яке станом на сьогодні знімалося 23,5 тис. Людей на GitHub. Якщо pkexecтакож з якихось причин недоступний, то це забезпечує альтернативний метод, без перезавантаження, що є майже таким же швидким і простим.
Адріан Гюнтер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.