如果它是其他使用者的標準,為什麼 root 不將 vi 別名為 vim?
在 centos(我相信許多其他發行版)上,預設情況下,所有使用者的 vi 都別名為 vim。但是,無論出於何種原因,對於 root 使用者,vi 都不是 vim 的別名,當我在使用 sudo 時忘記輸入 vim 而不是 vi 並且沒有我認為理所當然的 vim 功能時,這總是讓我煩惱,比如預設語法高亮。
我了解別名是如何完成的,以及為什麼當我 sudo/su. 我在問是否有理由使這種行為成為可取的行為,即為什麼 centos 開發人員也沒有為 root 添加別名?對於普通使用者不存在的 root 使用者的 vim 別名是否存在某種安全或功能問題?是否有歷史原因 root 不應該有這個別名?
與此同時,我為我維護的伺服器上的 root 使用者添加 vi 的預設別名到 vim 有什麼害處嗎?如果我要這樣做,是否有我應該使用的更好的方法來解決它(或者更準確地說,出於安全原因我應該避免使用的任何方法?)
我在問是否有理由使這種行為成為可取的行為,即為什麼 centos 開發人員也沒有為 root 添加別名?對於普通使用者不存在的 root 使用者的 vim 別名是否存在某種安全或功能問題?是否有歷史原因 root 不應該有這個別名?
如果您注意到 root 與使用者的對比,
echo $PATH
您會看到一個大大縮短的列表……預設情況下它基本上是一種開箱即用的 linux預設安全狀態的安全心態……
與此同時,我為我維護的伺服器上的 root 使用者添加 vi 的預設別名到 vim 有什麼害處嗎?如果我要這樣做,是否有我應該使用的更好的方法來解決它(或者更準確地說,出於安全原因我應該避免使用的任何方法?)
在大多數情況下,為 root 帳戶添加別名並沒有什麼壞處。請注意您的操作方式和位置。安全心態假設可能會發生這樣的事情,這將是一種攻擊媒介,也是**入侵系統的眾多手段之一。安全心態 = 最小化或防止任何/所有攻擊方法,因此沒有別名。
fwiw,我使用 SLES 並使用過 RHEL。我更喜歡編輯
/etc/bash.bashrc.local
和/etc/csh.cshrc.local
添加我的別名,這適用於非特權使用者。並且這兩個文件是擁有root.root
權限的-rw-r--r--
。對於 root,我只需編輯/root/.bashrc
.別名不會繞過基本的安全策略,如果他們這樣做了,那麼問題不在於別名,而是其他東西。
像這樣的決定通常取決於對易於維護和安全性的擔憂,儘管其他答案中提到的安全性是一個因素。一些系統管理員不希望超級使用者的互動環境出現奇怪的未記錄的個人定制。他們希望事情以標準的、記錄在案的方式執行;沒有令人討厭的驚喜。他們還希望避免在全新安裝、系統升級等之後重新應用個人定制。
在.
vi
_ _ _ _ _ 前者是一個可選的“增強型 VIM”,可以存在,其中編譯了各種功能,而後者是“小 VIM”,啟用了很少的可選功能。(Ubuntu 也有類似的想法。)人們通常希望命令表現得像標準命令,尤其是在以超級使用者身份執行操作時。他們不希望某些增強的神馬功能或外掛以令人驚訝的方式改變東西;或者,更糟糕的是,闖入救援或緊急模式。他們不想要所有的vim``/usr/bin/vim``/bin/vi``vi``vi``vi
參考 DOCO,有人在超級使用者諮詢的情況下進行關鍵工作,因為這些事情是非常錯誤的。
vi
這意味著當管理員請求時呼叫vi
,而不是vim
。換一種說法:雖然您已經將各種 VIM 自定義和擴展視為理所當然,但其他一些人傾向於認為超級使用者帳戶沒有此類自定義和擴展是理所當然的。他們將這種假設建構到他們編寫的 WWW 頁面、問答答案和書籍中。他們形成習慣,並將超級使用者執行時所獲得的知識從一個系統帶到下一個系統
vi
。(具有諷刺意味的是,有時這是因為它具有 VIMisms。從 Linux 作業系統到 FreeBSD 的人們必須學習的一件事vi
是 nvi,而不是任何 VIM 風格。)此外:他們希望不必記住進行
/root/.vimrc
硬碟/root/.gvimrc
更換、系統重新安裝等操作;除了系統範圍的配置文件。另一個體現這種想法的例子是
toor
FreeBSD 上的帳戶。它是超級使用者,但具有類似 Bourne 的 shell(實際上是 Almquist shell)。該root
帳戶具有 TENEX C shell,並且由於有數十年的 BSD doco 顯示超級使用者使用 C shell 驅動系統,因此人們給出的建議是保持原樣,並toor
用於類似 Bourne 的互動。當以 身份登錄時,C shell 是預期的環境root
,如果它為擁有(比如說)一本用於管理 FreeBSD 的 C shell 指令書的超級使用者提供了一個類似 Bourne 的 shell,那麼就會出現歡鬧甚至潛在的災難。進一步閱讀
- “
vi
”。 殼牌和實用程序。單一 UNIX 規範。第 7 期。IEEE 1003.1。2018. 公開組。- https://askubuntu.com/questions/281886/
- Dru Lavigne(2009 年 2 月)。 BSD 黑客:100 個工業技巧和工具。奧萊利媒體。國際標準書號 9780596006792。
- https://unix.stackexchange.com/a/397056/5132
- 斯文·古克斯 (2017)。 Vi 複製和首頁。古克斯網。