Получение корневых полномочий на файле в vi? [закрытый]

Я нашел следующую команду

mvn dependency:copy-dependencies -Dclassifier=sources

здесь maven.apache.org

239
задан Paul Wicks 19 April 2009 в 17:26
поделиться

9 ответов

% заменяется текущим именем файла, таким образом можно использовать:

:w !sudo tee %

(vim обнаружит, что файл был изменен и спрашивает, хотите ли Вы к нему быть перезагруженными. Скажите да путем выбора [L], а не OK.)

Как ярлык, можно определить собственную команду. Поместите следующее в Ваш .vimrc:

command W w !sudo tee % >/dev/null

С вышеупомянутым можно ввести :W<Enter>, чтобы сохранить файл. Так как я записал это, я нашел, что более хороший путь (по-моему), делает это:

cmap w!! w !sudo tee >/dev/null %

Этот способ, которым можно ввести :w!! и это будет расширено до полной командной строки, оставляя курсор в конце, таким образом, можно будет заменить % собственным именем файла, если Вам нравится.

290
ответ дан beroe 23 November 2019 в 03:21
поделиться

В целом Вы не можете изменить эффективный идентификатор пользователя процесса vi, но можно сделать это:

:w !sudo tee myfile
32
ответ дан Mark Harrison 23 November 2019 в 03:21
поделиться

Совет Ryan вообще хорош, однако, если следующий шаг 3, не перемещайте временный файл; это будет иметь неправильное владение и полномочия. Вместо этого sudoedit корректный файл и чтение в содержании (использующий :r и т.п.) временного файла.

, Если следующий шаг 2, используйте :w!, чтобы вынудить файл быть записанным.

7
ответ дан Chris Jester-Young 23 November 2019 в 03:21
поделиться

Если Вы используете Vim, существует сценарий, доступный именован sudo.vim. Если Вы находите открытие файла, что Вы должны базироваться доступ в чтение, Vim типа

:e sudo:%
заменяет % названием текущего файла, и sudo: дает sudo.vim сценарию команду вступать во владение для чтения и записи.
11
ответ дан CoderCroc 23 November 2019 в 03:21
поделиться

При входе в режим вставки на файле, Вам нужен sudo доступ к редактированию, Вы получаете сообщение о состоянии, говоря

-- INSERT -- W10: Warning: Changing a readonly file

, Если я пропускаю это, обычно я делаю

:w ~/edited_blah.tmp
:q

.. тогда..

sudo "cat edited_blah.tmp > /etc/blah"

.. или..

sudo mv edited_blah.tmp /etc/blah

существует, вероятно, менее окольный способ сделать это, но это работает.

3
ответ дан dbr 23 November 2019 в 03:21
поделиться

Быстрый Google, кажется, дает этот совет:

  1. не пытаются отредактировать, если это только для чтения.
  2. Вы могли бы быть в состоянии изменить полномочия на файле. (Позволит ли это Вам, сохранение до экспериментирования.)
  3. , Если Вы все еще отредактировали так или иначе, сохраните во временный файл и затем переместите его.

http://ubuntuforums.org/showthread.php?t=782136

1
ответ дан Ryan Fox 23 November 2019 в 03:21
поделиться

У меня есть это в моем ~/.bashrc:

alias svim='sudo vim'

Теперь каждый раз, когда я должен отредактировать файл конфигурации, я просто открываю его с svim.

0
ответ дан pisswillis 23 November 2019 в 03:21
поделиться

Быстрый взлом, который можно рассмотреть, делает chmod на файле, который Вы редактируете, сохраняете с энергией, и затем chmod назад к тому, чем файл был первоначально.

ls -l test.file (to see the permissions of the file)
chmod 777 test.file
[This is where you save in vim]
chmod xxx test.file (restore the permissions you found in the first step)

, Конечно, я не рекомендую этот подход в системе, где Вы волнуетесь по поводу безопасности, что касается нескольких секунд любой может читать/изменять файл без Вас понимание.

-2
ответ дан num1 23 November 2019 в 03:21
поделиться

Вот еще один, который появился, поскольку этот вопрос был дан ответом, плагин под названием SudoEdit, который предоставляет функции sudoread и sudowrite, которые по умолчанию по умолчанию пытаются использовать sudo Сначала и сум, если это не удается: http://www.vim.org/scripts/script.php?script_id=2709

1
ответ дан 23 November 2019 в 03:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: