Нужно ли использовать "Visudo"?
В /etc/sudoers
, это говорит:
# This file MUST be edited with the 'visudo' command as root.
У меня вопрос, почему этот файл должен быть отредактирован с visudo
?
Кажется, я смог успешно отредактировать файл с gedit
, выдав:sudo gedit /etc/sudoers
,
Если бы я мог отредактировать его с gedit
почему я должен использовать visudo
?
3 ответа
Это просто безопаснее в использовании visudo
, Вы можете редактировать /etc/sudoers
напрямую, но если вы сделаете опечатку там, вы не сможете использовать sudo
больше. И не сможет исправить вашу ошибку.
visudo
блокирует файл sudoers для нескольких одновременных изменений, обеспечивает базовые проверки работоспособности и проверки на ошибки синтаксического анализа.
Вы можете прочитать больше:
man visudo
Когда вы используете , если вам удается ввести синтаксическую ошибку, просто выходит с подсказкой «Что теперь?», но не дает вам никаких вариантов на экране.
Тем не менее, варианты указаны вvisudo
справочная страница :
visudo анализирует файл sudoers после редактирования и не сохраняет изменяется, если есть синтаксическая ошибка. Обнаружив ошибку , visudo напечатать сообщение с номерами строк, в которых произошла ошибка и пользователь получит сообщение "Что теперь?" быстрый. В этот момент пользователь может ввести «e», чтобы повторно отредактировать файл sudoers , «x», чтобы выйти без сохранение изменений или «Q», чтобы выйти и сохранить изменения. Вариант «Q» следует использовать с особой осторожностью, потому что, если visudo считает, что быть ошибкой синтаксического анализа, так что sudo и никто не сможет снова sudo пока ошибка не будет исправлена. Если ввести «e» для редактирования файла sudoers после обнаружения ошибки синтаксического анализа курсор будет помещен на строка, в которой произошла ошибка (если редактор поддерживает это особенность).
Тем не менее, это в значительной степени стена текста, и она не очень интуитивно понятна.
Чтобы избежать путаницы, если вы получите синтаксическую ошибку, я рекомендую вам определить следующую функцию в вашем (или другом файле, полученном из
~/.bashrc
).
# Improved visudo command
editsudo () {
echo "Valid options at the 'What now?' prompt:"
echo " e : Re-edit the sudoers file"
echo " x : Exit without saving the changes"
echo " Q : Quit and save changes (NOT recommended)"
sudo visudo
}
Теперь у этого есть 2 преимущества:
- Команда гарантирует выполнение
sudo visudo
(так короче). - Команда
editsudo
сначала печатает текст справки, так что, если вы выйдете с ошибкой, у вас будет соответствующая информация прямо вверху.
Прямо изо рта лошади,
man visudo
:
visudo
редактирует файл sudoers безопасным способом, аналогично vipw(8).visudo
блокирует файл sudoers от нескольких одновременных изменений, обеспечивает базовые проверки работоспособности и проверяет наличие ошибок синтаксического анализа перед установкой отредактированного файла. Если файл sudoers в настоящее время редактируется, вы получите сообщение, чтобы повторить попытку позже.
visudo
анализирует файл sudoers после редактирования и не сохраняет изменения в случае синтаксической ошибки. Обнаружив ошибку,visudo
напечатает сообщение с указанием номеров строк, в которых произошла ошибка, и пользователь получит сообщение "Что теперь?" Подсказка. [...]