Как настроить visudo для использования другого редактора, чем по умолчанию в Fedora?

28

Fedora 14 использует vi по умолчанию, когда запускается visudo. Есть ли способ изменить это на что-то другое?

tshepang
источник

Ответы:

44

Добавление Defaults editor=/path/to/editorв файл sudoers приведет к тому, что visudo будет использовать указанный редактор для изменений.

Кроме того, если ваш пакет sudo был собран с --with-env-editor, как это используется по умолчанию в некоторых дистрибутивах Linux, вы также можете установить переменную среды EDITOR, выполнив export EDITOR=/path/to/editor. Выполненный в командной строке, он вернется после завершения сеанса оболочки; установка переменной в ~ / .bashrc или / etc / profile приведет к сохранению изменения.

Tok
источник
Не могли бы вы предоставить команду (ы), которые вы выполнили?
Ток
@Tshepang - Вы также можете установить редактор по умолчанию = / usr / bin / nano в файле sudoers, чтобы указать редактор. На данный момент я предполагаю, что вы хотите использовать nano, как указано в вашем предыдущем комментарии.
Ток
@Tshepang - Да, однако, вероятно, это продукт сборки пакета с использованием --with-env-editor.
Ток
1
@Tok: На какой системе не visudoчести $VISUALи $EDITOR?
Жиль "ТАК - перестать быть злым"
3
@Gilles - основываясь на моем чтении, Ubuntu недавно изменила параметры сборки своего пакета sudo, чтобы не включать --with-env-editor, что недавно здесь означало в памяти Интернета. Кроме того, пакет sudo некоторое время назад изменил их по умолчанию, чтобы использовать vi в качестве редактора по умолчанию, что, как я полагаю, совпало с изменением поведения в отношении принятия переменных среды. У меня нет четкого графика того, как, когда или если эти события связаны друг с другом в настоящее время.
Ток
11

Последующий

  • работает для дистрибутивов, которые используют alternatives(первоначально только Debian и его форки, но теперь большинство основных дистрибутивов, IIUC).
  • имеет то преимущество, что

    1. вам не нужно будет sudoersсначала редактировать с помощью редактора по умолчанию
    2. это работает , даже если пакет = sudoеще не было построено с--with-env-editor

Из командной строки:

  1. Бег sudo update-alternatives --config editor
  2. Выберите нужный редактор из меню (текстовый режим). Если вы не видите нужный редактор, вам, вероятно, нужно установить его; отмени, сделай это и повторите.

sudo visudo Теперь должен открыть редактор по вашему выбору.

TomRoche
источник
7

Обычная Unix-программа, которая хочет вызвать редактор, запустит программу, имя которой находится в переменной среды EDITORили VISUAL, и, если переменная не установлена, по умолчанию, зависит от системы. Многие, но не все, программы проверяют EDITORи VISUAL; это различие давно устарело (если вы работаете EDITORна телетайпе и VISUALна «стеклянном» терминале…), поэтому вам следует установить оба значения на одно и то же. Существуют некоторые разногласия относительно того, должен ли в содержимом переменной быть полный путь к исполняемому файлу, искомое имя исполняемого файла $PATHили фрагмент оболочки, поэтому вам следует придерживаться пути к исполняемому файлу, не содержащему метасимвол оболочки. Системное значение по умолчанию, когда ни одна из переменных не установлена, традиционноvi, хотя некоторые дистрибутивы изменили это на более дружественный для новичка редактор, такой как nano.

visudoпроверяет и то, VISUALи другое EDITOR(это можно скомпилировать, предположительно, чтобы отговорить root от использования редактора, безопасности которого не доверяет создатель дистрибутива, но даже OpenBSD этого не делает).

Жиль "ТАК - перестань быть злым"
источник
3

Эти шаги позволяют мне установить редактор на viudo для viudo в Ubuntu 12.04, они, вероятно, работают для большинства дистрибутивов:

Команда выдачи:

sudo visudo

Это открывает файл sudoers в nano. Возле вершины вы увидите эту строку:

Defaults    env_reset

Добавьте следующую строку под строкой выше:

Defaults    editor=/usr/bin/vi

Сохраните файл и выйдите. Снова откройте Visudo в качестве пользователя по умолчанию:

sudo visudo

Файл sudoers теперь открывается в VI.

Эрик Лещинский
источник
2

visudoиспользует EDITORпеременную, например.

sudo EDITOR=/path/to/editor visudo
Bhavin
источник