Linux
僅使用 sudo 權限編輯 root 可寫文件
我們的系統管理員使用具有 sudo 權限的非特權帳戶登錄到盒子。我經常出於習慣打開文件
vim
而不是sudoedit
. 我不想養成使用sudoedit
. 我的同事建議vim
在指向sudoedit
. 這對我來說似乎是一個可怕的想法。我通常只是
:w /tmp/service.conf
然後mv -i /tmp/service.conf /etc/
這看起來很笨拙,但我幾乎傾向於說我更相信這個過程,而不是養成使用
sudoedit
or的習慣sudo vim
。意見?
**旁注:**我們通常可以輕鬆訪問這些文件的備份,因此這不是問題。
我會繼續使用 VIM,讓它為你工作。當您打開一個您沒有寫入權限的文件時,您仍然可以通過在 VIM 中發出以下命令來保存它:
<ESC>:w !sudo tee %
這將允許您執行 sudo,並將您的編輯放入您目前正在編輯的文件中。完成此操作後,文件將在 VIM 之外有效編輯,因此它會要求您載入新內容。
使用sudo.vim,您可以做到
vim sudo:path-to-file
. 如果你已經打開了一個沒有 的文件sudo:
,你可以:f sudo:%
切換到使用sudo
來讀/寫。(您可能也希望:set noro
避免在嘗試編輯/寫入 Vim 在第一次打開時認為是只讀的文件時出現警告。)請注意,Alex 的
:w !sudo tee %
解決方案和 sudo.vim 都存在 shell 轉義問題。除非您知道文件名是安全的,否則不要使用。