Linux

僅使用 sudo 權限編輯 root 可寫文件

  • December 2, 2010

我們的系統管理員使用具有 sudo 權限的非特權帳戶登錄到盒子。我經常出於習慣打開文件vim而不是sudoedit. 我不想養成​​使用sudoedit. 我的同事建議vim在指向sudoedit. 這對我來說似乎是一個可怕的想法。

我通常只是:w /tmp/service.conf然後mv -i /tmp/service.conf /etc/

這看起來很笨拙,但我幾乎傾向於說我更相信這個過程,而不是養成使用sudoeditor的習慣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 轉義問題。除非您知道文件名是安全的,否則不要使用。

引用自:https://serverfault.com/questions/208144