作者iamivers0n (啾東)
看板Editor
標題Re: [vim ] 新手入門再次請問一下?
時間Fri May 24 16:02:10 2013
※ 引述《darkgerm (黑駿)》之銘言:
: 想回的東西有點多~ 用回文好了
: $ sudo vim
: 這樣是以 root 的身份執行 vim,所以讀的是 root 的設定檔
: 但若以系統管理的角度來看,有執行 vim 的權限就相當於有 root shell
: 怎麼說?在 vim 裡可以用 :sh 進到 shell XD
: 也就是說,如果今天是用 sudo vim 執行 vim,我可以透過 :sh 來得到 root shell
: 因此,在多人管理的系統中,除非是本來就有 root 權限的管理者
: 不然一般維護人員是不可以 sudo vim 的
這個應該可以用 rvim 或者 sudoers 裡的 NOEXEC 來解
兩個都是不讓 user 有機會 fork 出新的 shell 來用
: 另一方面,sudo vim 讀的是 root 的設定檔
: 於是需要複製一份而且更新時要同步更新... (好啦,這其實可以用 link 做到)
其實 vim search 的是你的 $HOME/.vim{/,rc}
只是因為 sudo 跑起來會把 $HOME 換掉, 以 root 來說就是 /root
所以才會變成吃不到自己 vim 的設定
原原 po 的問題其實可以這樣解:
在 sudoers (用 visudo 改) 裡面加上
Defaults env_keep +="HOME"
讓 sudo 跑起來的時候保留自己的 $HOME
這樣就能順利吃到自己 $HOME 下面的 vim 設定了
不需要多 copy 一份到 /root 下
btw, 因為某些程式 (ex. visudo) 也會看 $EDITOR 的設定決定跑起來的編輯器
所以通常我在 sudoers 都會把 EDITOR 也寫進去:
Defaults env_keep +="HOME EDITOR"
提供給原原 po 參考
: [deleted]
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.xx.xxx
↖ こ...これは
(°口°)(°口°)!!
╲
╱ └█
︴︴ ㄥㄥ
ψQSWEET
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.235.135
1F:推 hSATAC:推這篇 05/24 20:38
2F:推 darkgerm:保留env確實是不錯的做法!! 05/25 00:30
3F:→ darkgerm:不過有時 sudoers 是動不到的就是了XD 05/25 00:30
4F:推 zarcen:我也是用這個方法 05/25 08:23
5F:推 qwertmn:這方法好XD 受教 05/25 19:15
6F:推 Bellkna:有用有推XD 05/25 23:16
7F:推 upyours:好方法! 06/03 12:05