Например, для команды sudo vim /var/log/errors.log
я хочу, чтобы vim запускался с моими пользовательскими настройками вместо корневых настроек. Я знаю, что мог бы настроить vim для учетной записи root, но это не то, что я хочу, потому что это может быть испорчено в будущем обновлении. А также я не хочу менять поведение vim других аккаунтов.
3 ответа
sudoedit
Это НАМНОГО более безопасно.
Использовать vim (если это не ваш редактор по умолчанию)
(export VISUAL=vim; sudoedit file)
но еще лучше .... установите VISUAL и EDITOR в вашем ~/.bashrc, так что это ваш редактор по умолчанию.
Я не смог проверить, но это может сработать: sudo HOME=/home/myusername vim /var/log/errors.log
Или проще: sudo HOME=$HOME vim /var/log/errors.log
Вам нужно отредактировать файл /etc/sudoers и, возможно, файлы в /etc/sudoers.d/ и удалить опцию env_reset в операторах Defaults .
Моя выглядит так:
Defaults env_reset
Удалите или закомментируйте эту строку, и sudo сохранит переменные среды вашего пользователя, а не выгрузит все и заполнит несколькими конкретными значениями.
Конечно, обратитесь к man-странице sudoers для получения более подробной информации, и не забудьте отредактировать файл sudoers с помощью команды visudo (или sudo visudo). visudo проверяет файл sudoers на наличие ошибок, прежде чем он позволит вам завершить редактирование ... если файл плохой или не проходит никаких проверок ... вы больше не можете 'sudo', таким образом, команда visudo.