3

Я использую Bash на Debian Squeeze. Я только что прочитал эту тему: изменить текстовый редактор по умолчанию для crontab на vim

Я экспортировал обе переменные VISUAL и EDITOR в vim для обычного пользователя и для пользователя root. И это работает - когда я crontab -e как обычный пользователь или root, crontab запускает vim для редактирования.

Но при запуске sudo crontab -e открывается nano.

Запуск sudo echo $EDITOR (или $VISUAL) дал вывод vim int.

1 ответ1

5

По умолчанию и в целях безопасности sudo не сохраняет пользовательскую среду.

Есть несколько способов справиться с этим; для вашего конкретного случая я рекомендую добавить VISUAL=/usr/bin/vimEDITOR=/usr/bin/vim для программ, которые используют неправильный) в /etc/environment .

Второй вариант, если у вас есть разрешающая конфигурация sudo (возможно, потому что только у вас или у всех sudoers есть настоящий root-доступ в любом случае), это запустить visudo и добавить значения по Defaults env_keep="VISUAL EDITOR" чтобы все sudoers могли указать свои собственные (то есть preserve). эта переменная среды).

Ваш существующий файл sudoers может уже иметь (или включать) один или несколько операторов env_keep, например, это (из примера pastebin):

Defaults    env_reset
Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"

Первая из этих строк env_keep будет перезаписывать любые изменения, которые вы делаете над ним (присваивание), остальные строки расширяют список (+=). Чтобы все работало так, как вы привыкли, и если у вас нет причин менять набор, я рекомендую добавить строку сразу после них:

Defaults    env_keep += "VISUAL EDITOR"

(Существуют и другие варианты использования предпочитаемого вами редактора, но они либо излишне сложны, либо чрезмерно разрешительны и опасны, поэтому вам придется читать man sudoers , самостоятельно разбираться с ними и понимать, какие могут быть связанные проблемы.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .