首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sudo -e与sudo vim的差异?

sudo -e与sudo vim的差异?
EN

Unix & Linux用户
提问于 2022-08-09 16:21:33
回答 2查看 1.3K关注 0票数 8

sudo -esudo vim之间有什么关键区别吗?我已经设置了sudoers文件,所以vim是我的默认编辑器。这两者之间有关键的区别吗?另外,我应该从vim转到rvim吗?我试过了,但是我的配置文件有一些问题。

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2022-08-09 16:49:58

最大的区别是谁在编辑什么文件。

使用sudo vim (假设成功的身份验证),根用户调用vim并对文件进行编辑(根环境和vim交换文件与正在编辑的文件并行)。

使用sudo -esudoedit,调用sudo的用户会编辑自己在自己的环境中拥有的文件的临时副本(包括~/..vimrc之类的内容)。一旦用户保存了输出,临时文件的内容将被复制回用户没有编辑权限的原始文件中。此方法还进行了一些检查,以防止在一些情况下进行编辑:

  1. 用户正在尝试编辑一个符号链接。
  2. 用户试图使用包含符号链接的路径编辑文件。
  3. 用户对包含该文件的目录具有写权限。

为什么严格执行这些特定规则,我不知道(某种安全问题)。

用户也不允许使用sudo的编辑模式编辑设备特殊文件(块设备、串行设备等)的文件。

编辑:不将vim作为root运行的另一个后果是,用户不能以这种方式使用vim的shell功能将任意命令作为root运行。这允许用户通过sudoers规则编辑某些文件,同时不交出王国的密钥。

票数 17
EN

Unix & Linux用户

发布于 2022-08-09 16:42:13

有一个关键的区别:对于sudo -e,编辑器以用户的身份运行,而不是以根用户的身份运行;对于sudo vim,编辑器以root的形式运行。这有许多后果;其中之一是使用sudo -e,您将获得自己的编辑器设置;另一个后果是,使用sudo -e,您不会冒险对根拥有的文件进行其他更改。sudo -e还阻止用户以根用户的身份运行其他任何内容(因为大多数编辑器都可以启动shell)。

基本上,使用sudo -e,您可以以根用户(使用多个检查以避免根转义。)的形式完成一小部分操作,用户与其交互的所有操作都会以用户的身份运行。使用sudo vim,一切都以根用户的身份发生,用户可以有效地作为根用户执行他们想做的任何事情。

另见如何在Gnu/Linux中正确地编辑GUI (和CLI)中的系统文件(作为root文件)?

票数 8
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/713059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档