Bsdadmin.ru

Записки администратора FreeBSD

Путь на сайте

Домашняя Mans FreeBSD по-русски visudo - редактирование файла sudoers

visudo - редактирование файла sudoers

Название
visudo - редактирует файл sudoers

Синтаксис
visudo [ -c ] [ -f sudoers ] [ -q ] [ -s ] [ -V ]

Описание
visudo редактирует файл sudoers безопасным путем, по аналогии с vipw(8). visudo закрывает файл sudoers для предотвращения одновременного редактирования, содержит основные проверки, и проверки на ошибки парсинга. Список редакторов используемых visudo по умолчанию, может быть изменен через переменную editor sudoers Default. Список по умолчанию содержит vi(1) который определяется скриптом configure. Обычно visudo, не обращает внимания на переменные VISUAL и EDITOR, если они не содержат редактор в вышеупомянутом списке. Однако, если visudo сконфигурирован с опцией --with-enveditor или переменная enveditor Default установлена в файле sudoers, visudo будет использовать любой редактор определенный в VISUAL или EDITOR. Учтите, что такое поведение может быть дырой в безопасности системы, поскольку это позволяет пользователям запускать любую программу, которую они пожелают простой установкой VISUAL или EDITOR. visudo парсирует файл sudoers после редактирования и не сохранит изменения, если обнаружит синтаксическую ошибку. Найдя ошибку, visudo выведет сообщение с номером(ами) строки, где произошла ошибка и пользователь получит приглашение ``What now?''. С этого момента пользователь может ввести ``e'', для редактирования файла sudoers заново, ``x'' для выхода без сохранения изменений, или ``Q'' для выхода с сохранением. Опция ``Q'' должна использоваться с особой осторожностью потому что, если visudo полагает что присутствует ошибка парсинга, то sudo не сможет быть вызвана, до тех пор пока ошибка не будет исправлена. Если опция ``e'' использовалась для редактирования файла sudoers после того, как была обнаружена ошибка парсинга, курсор будет установлен на строку, где произошла ошибка (если редактор поддерживает эту возможность).

Опции
visudo поддерживает следующие опции командной строки.
-c
Включает check-only (только проверка) режим. Существующий файл sudoers будет проверен и сообщение будет выведено на стандартный вывод подробно описывая состояние файла sudoers. Если проверка прошла удачно, visudo завершится со значением 0. Если присутсвует ошибка, visudo завершится со значением 1.

-f
Определяет местоположение файла sudoers. С этой опцией visudo отредактирует (или проверит) файл sudoers по вашему выбору, вместо файла по умолчанию /etc/sudoers. Блокировка файла используется для выбранного файла sudoers с добавлением к нему .tmp

-q
Активирует режим quiet (тихий). В этом режиме подробности об ошибках не выводятся. Опция полезна в сочетании с опцией -c.

-s
включает strict (строгий) проверку файла sudoers. Если псевдоним используется до того, как он определен, visudo расценит это за ошибку парсинга. Учтите, что невозможно различать псевдоним и имя хоста, или имя пользователя которое содержит только заглавные символы, цифры, или символы подчеркивания ('_')

-V
Опция -V (версия) заставляет visudo вывести номер версии и завершить работу.

Окружение

Следующие переменные окружения используются только если visudo сконфигурирован с опцией --with-env-editor:

VISUAL   - Вызывается visudo как используемый редактор

EDITOR   - Используется visudo если VISUAL не установлен.

Файлы

/etc/sudoers список кто, что может запускать
/etc/sudoers.tmp файл блокировки для visudo

Диагностика
sudoers file busy, try again later.
Кто-то другой в данный момент, редактирует файл sudoers
/etc/sudoers.tmp: Permission denied
Вы не запустили visudo как root.
Can't find you in the passwd database
Ваш uid отстутствует в системном файле passwd
Warning: undeclared Alias referenced near ...

Либо вы используете {User,Runas,Host,Cmnd}_Alias до его определения, либо пользователь или имя хоста, состоит исключительно из заглавных букв, цифр и знаков подчеркивания ('_'). В последствии вы можете игнорировать эти предупреждения (sudo не будет жаловаться). При использовании опции -s.
Это ошибки, а не предупреждения.

Warning: runas_default set after old value is in use ...
У вас значение переменной runas_default в файле sudoers находится после того как значение было использовано. Это значит, что записи до значения runas_default будут совпадать со значением по умолчанию в переменной runas_default (root), тогда как записи после значения runas_default совпадают с новым значением. Обычно это не страшно и в большинстве случаев, переменная runas_default должна находится до Runas_Alias или пользовательский определений. При использовании опции -s это ошибки, а не предупреждения.

Примечание
Нет легкого способа препятствовать пользователю получать root shell, если редактор используемый visudo поддерживает shell последовательности.

Домашняя Mans FreeBSD по-русски visudo - редактирование файла sudoers