Если вы заранее знаете, что вам нужно отредактировать файл с правами суперпользователя, используя команды sudoedit <file>
или sudo -e <file>
вы настроите его в специальной среде для выполнения ваших обычных настроек редактора. Создается копия файла, и ваш редактор запускается для его редактирования (как ваш пользователь). Когда вы выходите, файл копируется обратно в исходное местоположение как root.
Это самый безопасный и рекомендуемый способ, но в случае, если а) вы заранее не понимаете, что вам нужно будет писать от имени пользователя root, или б) хотите редактировать и сохранять на месте инкрементальные изменения, вам понадобится что-то еще. С этой целью решение с использованием sudo tee
предложенного smpl определенно находится на правильном пути, но есть некоторые незначительные улучшения, которые могут быть сделаны для обработки крайних случаев. В частности, стоит обратить внимание на разницу в обработке приглашения пароля sudo в графическом интерфейсе и на интерфейсах консоли.
Более простой способ настроить это - использовать плагин vim-eunuch . У него есть эта конкретная проблема и несколько других полезных вещей, свернутых в удобный пакет. Использование так же просто, как вызов :SudoWrite
. Я даже использую немного более удобное сопоставление доступа:
cmap w!! call SudoWrite()
Это должно дать вам возможность написать любой файл с правами root :w!!
.
sudo vim file
лучше записать какsudo -e file
(при условии, что вы установили переменную окруженияEDITOR=vim
).