Чому нам потрібно використовувати visudo замість того, щоб безпосередньо змінювати файл sudoers?


83

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

Що це таке, visudoщо безпосередньо модифікувати файл не робить? Що може піти не так?

Відповіді:


104

visudoперевіряє синтаксис файлу, перш ніж його фактично перезаписати sudoers.

Якщо ви користуєтеся простим редактором, зіпсуйте синтаксис і збережіть ... sudo(мабуть) припинить роботу, і, оскільки /etc/sudoersце можна змінити лише root, ви застрягли (якщо у вас немає іншого способу отримання корінця).

Крім того, це гарантує, що правки будуть однією атомною операцією. Це блокування важливо, якщо вам потрібно переконатися, що ніхто інший не може зіпсувати ваші ретельно розглянуті зміни конфігурації. Для редагування інших файлів як root крім того /etc/sudoersє sudoeditкоманда, яка також захищає від таких конфліктів редагування.


3
Нічого собі, ніколи не знав про sudoedit. Він не працює на OS X, тому я припускаю, що це інструмент GNU? У будь-якому випадку, тут класна інформація. Я завжди редагував вручну і ніколи не мав проблем - тепер я розумію, що це була лише удача і інструмент може допомогти запобігти катастрофі. Дякую!
Харв

2
@Harv. Немає GNU, sudoа у OS X є інструменти GNU. Оскільки sudo вперше був створений як додаток із відкритим кодом, напевно, немає причин для їх багатьох реалізацій. sudoі sudoeditє тією ж командою, sudoповодиться, як sudo -eколи викликається sudoedit. Я вважаю, що якраз OS X забула додати sudoedit -> sudoпосилання, але ви все одно можете мати можливість використовувати sudo -eабо зателефонувати за sudoдопомогою argv [0], sudoeditщоб отримати таку саму поведінку.
Стефан Шазелас

Цікаво, що visudoза замовчуванням використовує nano.
Тім

3
@Tim: "Справжнім" за замовчуванням є vi, але його можна налаштувати на використання ще чогось. Тож нано справді може бути типовим для вашого дистрибутива / налаштування. Дивіться сторінку чоловіка .
Мат

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

23

Зі сторінки візуального чоловіка:

visudo блокує файл sudoers проти декількох одночасних редагувань, забезпечує основні перевірки розумності та перевірку на помилки розбору. Якщо файл sudoers зараз редагується, ви отримаєте повідомлення про спробу пізніше.

Також перевірте цю відповідь на сервері за замовчуванням .

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