不建议与此链接中所述sudo
的图形应用程序一起使用。因此,我倾向于使用with 。gedit
vim
sudo
最近我注意到我~/.viminfo
在相当全新的Ubuntu 16.04(Xenial Xerus)安装上归 root 所有,所以我想知道是否即使 Vim 也被认为是图形的,或者调用sudo vim
. 通过以下方式将所有权更改为我自己后:
sudo find $HOME -not -user $USER -exec chown $USER:$(id -g) {} +
随后运行sudo vim
我无法~/.viminfo
拥有root。但是,我确信它最近归 root 所有。
不建议调用sudo vim
吗?
是的,它是安全的。
问题
sudo gedit
在于 GUI 应用程序使用某些文件,例如~/.cache/dconf
, 并且在提升gedit
该文件后变为 root 拥有。好吧,该特定文件包含 GUI 应用程序(包括桌面)的用户特定设置,因此如果系统无法读取这些设置 - 这很糟糕。IIRC 用户无法启动特定桌面。用户最近的文件数据recently-used.xbel
也会受到影响。另一方面,Vim 没有这个问题。它不使用与 GUI 相关的数据库,也不将任何内容放入
recently-used.xbel
. 尽管 gVim 也存在,但它是为仅控制台目的而创建的。事实上,在某些系统上,Vim 是您唯一的编辑器选择。所以它比gedit更安全,因为它不会引起同样的问题。在这两种情况下,您仍以 root 身份进行编辑,因此您可能会因编辑不当而出现问题。根据这篇博文:
虽然作者指出它可能会导致问题,但没有什么复杂的 - 只是
chown
将文件返回给自己。也可以看看:
也可以用来
sudoedit
实现这一点;它会在您的编辑器中打开该文件的临时副本,您的编辑器会像您一样运行。从手册页:这适用于 vim(这是我通常所做的),我想它也会让你使用 gedit。有一些安全限制。
链接很旧(2013 年)。它建议使用
gksudo
或gksu
用于图形应用程序,但两者都已过时。后来接受的答案也暗示sudo -H
了这一点。最近Ask Ubuntu社区的普遍共识是使用:
唯一的问题仍然是
sudo
没有选项卡设置、扩展名、自动换行、字体名称、字体大小等的配置文件。您可以从用户配置文件中继承这些配置文件,尽管使用如下包装脚本:如何同步我的根gedit 与我的用户 gedit 的偏好?是的,使用它是安全的
sudo vim
。我遇到的问题是必须退出文件并重新打开
sudo vim
才能进行编辑。让根
vimrc
是默认的,而不是我定制的有用的东西。bashrc
如果您无法正常编辑文件,您可以在其中添加一个功能,以允许 vim 自动 sudo。使用 vi 作为 root 很好。有时您需要编辑需要 sudo 或 root 权限的文件,例如更改网络接口文件,或者可能编辑 sshd 配置文件。对图形使用 root 是不好的,因为人们会以 root 连接到 IRC 或浏览 Web。如果他们在这样做时感染了病毒,它将具有完全的 root 访问权限。
其他答案中没有提到的一点是,使用 root 运行 vim 将为您安装的任何插件提供 root 权限。因此,以 root 身份运行是否安全的问题取决于您是否相信那些插件开发人员(或他们项目的贡献者)不会拥有您的系统的核心。
Vim 通常由所有 linux 发行版中的包维护人员审查,因此很容易信任。但是,vim 插件通常直接从 GitHub 存储库安装,并且通常审核的用户要少得多(可能为零)。换句话说,他们没有审查程序。
如果您在 root 中不加载插件,那么我想以 root 身份运行取决于您是否信任 vim 开发人员。但是,您可以跳过必须信任它们的步骤,使用由 sudo 的同一开发人员制作的 sudoedit,我们已经信任他们具有 root 访问权限。GKFX 和 NieDzejkob 已经提到了为什么 sudoedit 是理想的。除了您不必信任除 sudo 开发人员之外的任何其他人的 root 访问权限之外,您还可以使用普通用户帐户加载您已经信任的所有插件。