Ответы:
visudoпроверяет синтаксис файла перед его перезаписью sudoers.
Если вы используете простой редактор, испортите синтаксис и сохраните ... sudo(вероятно) перестанет работать, и, поскольку его /etc/sudoersможно изменить только с помощью root, вы застряли (если у вас нет другого способа получить root).
Кроме того, это гарантирует, что изменения будут одной атомарной операцией. Эта блокировка важна, если вам нужно убедиться, что никто не сможет испортить ваши тщательно продуманные изменения конфигурации. Для редактирования других файлов от имени root, кроме того, /etc/sudoersесть sudoeditкоманда, которая также защищает от таких конфликтов редактирования.
sudoа OS X имеет инструменты GNU. Поскольку sudo был впервые создан как приложение с открытым исходным кодом, вероятно, нет оснований для его множества реализаций. sudoи sudoeditте же команды, sudoведет себя как sudo -eпри вызове, как sudoedit. Я считаю, что просто OS X забыл добавить sudoedit -> sudoссылку, но вы все равно должны иметь возможность использовать sudo -eили вызывать sudoс argv [0], установленным sudoeditдля получения того же поведения.
visudoпо умолчанию используется nano.
sudo vim /etc/sudoersи испорчу синтаксис, то я не смогу sudo vim /etc/sudoersснова это исправить. По сути, все возможности повышения привилегий через sudo будут потеряны, поскольку система не сможет проанализировать файл.
Со страницы руководства visudo:
visudo блокирует файл sudoers от нескольких одновременных изменений, обеспечивает базовые проверки работоспособности и проверки на ошибки синтаксического анализа. Если файл sudoers в данный момент редактируется, вы получите сообщение, чтобы повторить попытку позже.
Также проверьте этот ответ от serverfault .