#Vim中的一个irc用户敦促我不要在Vim中使用Sudo,例如:
sudo vim bad_idea
当我在/ var / www /等位置执行操作时,如果没有它,我将无法书写。因此,不使用sudo成为一个问题。当然,我可以在/ tmp /等不同位置进行更改,然后将目录复制到/ var / www。但是,我觉得更简单。
- 如果您没有“ sudo Vim”,为什么?
- 如果第一个问题是,您如何避免不使用sudo的问题?
#Vim中的一个irc用户敦促我不要在Vim中使用Sudo,例如:
sudo vim bad_idea
当我在/ var / www /等位置执行操作时,如果没有它,我将无法书写。因此,不使用sudo成为一个问题。当然,我可以在/ tmp /等不同位置进行更改,然后将目录复制到/ var / www。但是,我觉得更简单。
Answers:
我属于第一类:这sudo vim /var/www/html/some_file
是一个坏主意;它允许未记录的外壳转义。而是使用sudoedit /var/www/html/some_file
; 具有相同的效果。
请参阅:https : //stackoverflow.com/questions/1005/getting-root-permissions-on-a-file-inside-of-vi:
%被替换为当前文件名,因此您可以使用:
:w!sudo tee%
vim允许用户执行任意的shell命令,因此许多系统管理员不允许vim与sudo一起使用。
rvim包含在vim中。这是受限制的vim,不允许使用shell命令。(或者出于相同的原因,允许您挂起vim。)
是否需要在自己的盒子上走到那些极端是有争议的。
sudo vim
然后输入:!bash
,您便拥有一个以root为根的rvim
sudo bash
还是sudo su -
正确的?
vi
启动,vim
但作为root vi
启动vi
。在Ubuntu vim
上,这两种情况均会使用,并且sudo vi
还会启动vim
...
这样的问题使我sm额。我在安全性的另一面,“安全性不应干扰用户体验,除非它被期望或要求阻止普通人进行恶意活动。”
防止sudo使用vim只是一个创可贴。如前所述,某人可以使用:
sudo su -
要么
sudo /bin/bash
要么
sudo nano file
要么
sudo my_exectuable_text_editor file
等
如果您真的担心有人在盒子上进行恶意操作,请不要给他们sudo(显然是root密码)特权。没有防止使用sudo进行恶意活动的银色子弹,您只能通过“应用”所有“修复”来确保自己不会做任何恶意来使自己发疯。
有人提到更改所有权/组。这是一个棘手的问题,好像Web服务器是作为另一个用户运行的,并且您更改了文件的权限,现在突然您的站点无法正常工作。好吧,显然这不会帮助您。您可以将自己添加到运行Web服务器的组中,但是,如果该组没有文件访问权限,则需要执行chmod -R g + w *(或chmod单个文件)您想要的文件,如果必须对每个文件进行chmod操作,可能会很麻烦。
甚至有人建议使用rvim。当然,可以只在/ etc / sudoers中添加一行以仅允许某些用户sudo rvim,但是,从逻辑上讲,如果必须走那条路,则实现基于Web的文件管理器可能会更好。这样,它就可以像运行Web服务器的用户一样运行,因此没有文件权限问题,您仍然可以精确控制谁编辑哪些文件。
反正我的两分钱。
运行sudo vim
不会更改$HOME
目录,因此您将以root权限运行Vim,但$HOME
仍指向普通用户。
如果这是您第一次运行Vim,则可能~/.viminfo
是在普通用户目录中创建了文件,但是具有root权限。
sudo vim -c '!echo $HOME' -c q
确实提供了我的主文件夹,但是在我的服务器上却给出了/root
。我可能不得不看看为什么会这样,可能是因为一个人的OS X而另一个人的Gentoo,或者可能与/etc/sudoers
设置方式有关。
.viminfo
只能通过root用户访问。
如果这是您自己的计算机 ...除了Denilson指出的一种极端情况,我看不出您无法使用'sudo vim'的任何理由-它可能会创建root拥有的〜/ .viminfo。
如果不是 -如果系统管理员限制了您可以做什么和不能做什么-每个“ man sudo”:“在大多数系统上,可以使用sudo的noexec功能来防止shell脱机。有关详细信息,请参见sudoers(5)手册。 ”
因此,在这种情况下,如果您的系统管理员担心您在vim中以root用户身份运行子Shell的潜力,则可以使用noexec功能。但是...回到最初的情况-如果这是您的计算机,我认为运行'sudo vim'非常安全。
引用balpha关于组的答复: