Linux

nano/vi 以未經授權的使用者身份打開防寫文件 - 我可以升級保存嗎?

  • June 12, 2017

比我想承認的次數還要多,我會以非超級使用者的身份打開配置,然後進行我需要的更改。一旦我保存在 nano 或 vi 中,我就會遇到權限錯誤。

在這一點上,我 c/p foo 我的方式,所以我可以關閉並重新打開sudo

有沒有辦法升級到超級使用者以便在不關閉和重新打開 vi 或 nano 的情況下保存?

我不知道 nano,但我知道您可以編寫一個您無權在 vim 中訪問的文件。嘗試執行以下命令:

:w !sudo tee %

即使您沒有權限,這也會保存文件。Nathan Long 對這裡的工作原理有很好的解釋,但我也會給出一個簡短的解釋。

:w不表示保存,表示寫入。所以在這種情況下,:w !foo意味著寫入外部命令foo。在這種情況下,外部命令是sudo tee %,其中%是目前文件的名稱。Tee 將同時寫入給定文件和 STDOUT,並且由於我們使用 sudo 執行它,因此它具有寫入文件的必要權限。

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