2014-12-15 4 views
1

я выполнил эти две команды:Как я могу назначить редактор для visudo?

export VISUAL=/usr/bin/vim 
export EDITOR=/usr/bin/vim 

И я проверил, если они были правильно обновлены env. Но я получаю странный редактор, когда я запускаю sudo visudo.

Хотя я не знаю, редактор, в нижней части консоли он говорит это:

-----Mg: sudoers.tmp     (fundamental)----Top------------------ 
(Read 29 lines) 

Этот редактор бесполезно, потому что я не могу переместить курсор. Я могу закрыть консоль.

Что заставляет этот странный редактор работать? Какую команду я должен выполнить для изменения редакторов?

ответ

2

От :man visudo (второго абзаца):

Существует жесткий закодирован список из одного или нескольких редакторов, visudo будет использовать набор во время компиляции, которые могут быть переопределены с помощью редактора sudoers По умолчанию переменных , В этом списке по умолчанию используется/usr/local/bin/vi. Обычно visudo не соблюдает переменные окружения VISUAL или EDITOR, если они не содержат редактор в списке вышеупомянутых редакторов. Однако, если visudo настроен с параметром -with-env-editor или env_editor По умолчанию переменная устанавливается в sudoers, visudo будет использовать любой редактор, определяемый VISUAL или EDITOR. Обратите внимание, что это может быть защитное отверстие, так как позволяет пользователю выполнить любую программу, которую они хотят просто, установив VISUAL или EDITOR.

Таким образом, чтобы настроить другой редактор, вам необходимо изменить конфигурацию /etc/sudoers и добавить, например, Defaults editor /usr/bin/vim линию.

Странно, что Vim должен быть редактором по умолчанию уже ?! На основе вашего вывода, который может быть от Vim (с поврежденным терминалом) или другого редактора (вы можете проверить дерево процессов).

+0

Я забыл посмотреть на человека visudo, хотя я читал man-страницы sudo и sudoers. Спасибо. Однако почему установка VISUAL или EDITOR может быть защитным отверстием? Если у вас есть идея, не могли бы вы объяснить это? – jun

+0

sudo может быть ограничено только для выполнения определенных команд. Если такой пользователь с ограниченным доступом может манипулировать переменной EDITOR, это ограничение можно обойти. Обратите внимание: поскольку Vim может выполнять внешние команды оболочки, это тоже важно. Но там, по крайней мере, он должен быть явно введен пользователем, а не тихо вводиться через невидимую переменную среды. –

+1

Большое вам спасибо! Это убедительно. Наконец, я написал «Defaults editor =/usr/bin/vim» для sudoers. – jun

1

Это редактор, похожий на emacs, который называется mg, и вы можете/должны прочитать его страницу руководства, $ man mg, чтобы узнать, как это работает.

Что касается того, как и почему он стал вашим редактором по умолчанию ... вы должны взглянуть на ваши файлы init.

+0

Спасибо. Я не знал редактора. Я посмотрю на человека мг. – jun