Vim 与 sudo 结合使用安全吗?

Vim 与 sudo 结合使用安全吗?

不建议sudo与图形应用程序一起使用gedit,如所述在这个链接。因此,我倾向于vim使用sudo

最近我注意到我的~/.viminfo是 root 用户在刚刚安装的Ubuntu 16.04(Xenial Xerus),所以我想知道 Vim 是否也被认为是图形化的,或者调用时是否存在其他问题sudo vim。通过以下方式将所有权更改为我自己后:

sudo find $HOME -not -user $USER -exec chown $USER:$(id -g) {} +

随后运行,sudo vim我无法将~/.viminfo 其归 root 所有。但是,我确信它最近归 root 所有。

是否不建议调用sudo vim

答案1

是的,很安全。

的问题在于sudo gedit,GUI 应用程序使用某些文件,例如~/.cache/dconf,提升权限后,gedit该文件将归 root 所有。好吧,该特定文件包含 GUI 应用程序(包括桌面)的用户特定设置,因此如果系统无法读取这些设置 - 那就糟糕了。如果我没记错的话,用户无法启动特定桌面。用户的最近文件数据recently-used.xbel也会受到影响。

另一方面,Vim 没有这个问题。它不使用与 GUI 相关的数据库,也不会将任何东西放入recently-used.xbel。它是为控制台专用而创建的,尽管 gVim 也存在。事实上,在某些系统上,Vim 是你唯一的编辑器选择。所以它比编辑因为不会引起同样的问题。在这两种情况下,您仍以 root 身份进行编辑,因此,不正确的编辑可能会导致问题。

根据这篇博文

第一次使用 vim 时,~/.viminfo会创建该文件,如果您sudo vim在全新系统上安装 vim 后第一次使用 vim,则其权限~/.viminfo将把所有者设置为 root 而不是默认用户。

虽然作者指出这可能会导致问题,但这并不复杂 - 只需chown将文件返回给您自己。

也可以看看:

答案2

也可以使用来sudoedit实现这一点;它会在编辑器中打开该文件的临时副本,编辑器将以您的身份运行。从手册页

  1. 对要编辑的文件制作临时副本,并将所有者设置为调用用户。

  2. 运行策略指定的编辑器来编辑临时文件。 sudoers 策略使用SUDO_EDITORVISUALEDITOR环境变量(按此顺序)。如果没有设置SUDO_EDITORVISUALEDITOR,则编辑器中列出的第一个程序sudoers(5)选项被使用。

  3. 如果它们已被修改,则将临时文件复制回其原始位置并删除临时版本。

这在 vim 上工作得很好(我通常就是这么做的),我想它也会让你使用 gedit。一些安全限制

答案3

该链接非常老旧(2013 年)。它建议对图形应用程序使用gksudo或,gksu但这两种方法都已过时。后来被接受的答案也建议使用sudo -H

普遍的共识是询问 Ubuntu社区最近使用的是:

sudo -H gedit /path/to/filename

唯一的问题是sudo没有标签设置、扩展、自动换行、字体名称、字体大小等的配置文件。您可以使用如下包装器脚本从用户配置文件中继承这些内容:我如何将我的根 gedit 与我的用户 gedit 的偏好设置同步?

答案4

以 root 身份使用 vi 是没问题的。有时你需要编辑需要 sudo 或 root 权限的文件,例如更改网络接口文件,或者编辑 sshd 配置文件。使用 root 进行图形操作是不好的,因为人们会以 root 身份连接到 IRC 或浏览网页。如果他们在这样做时感染了病毒,它将具有完全的 root 访问权限。

相关内容