ArchLinuxStudio / ArchLinuxTutorial

✨Arch Linux安装使用教程 每日实时更新! | 包含ArchLinux从安装到日常使用、娱乐、编程、媒体制作的各个方面,让Arch成为你的常用系统吧! | 提供在线网页文档 ✨

Home Page:https://ArchLinuxStudio.github.io/ArchLinuxTutorial/#/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

使用 root 权限编辑文本文件应该使用 `sudoedit` 命令,而不是直接用 sudo 运行文本编辑器

GalaxySnail opened this issue · comments

docs/rookie/DE&App.md 中出现了使用 sudo vim 来编辑系统配置文件的例子,这实际上是一个反模式,不符合最小权限原则,因为此时整个文本编辑器进程都获得 root 权限,对于 vim 而言自然也包括各种 vim 插件。而实际上编辑一个文本文件只需要拥有对它的读写权限即可,sudoedit 会以 root 权限把要编辑的文件复制到一个临时文件,然后根据 EDITOR 等环境变量以普通用户权限调用文本编辑器,编辑完成之后使用 root 权限将临时文件覆盖掉要编辑的系统文件。sudoedit 应该被视为编辑系统配置文件的最佳实践。详见 sudo 的手册

此外提一句,此文档中使用 visudo 来编辑 sudoers 文件,这是编辑 sudoers 文件的最佳实践,不过建议添加一下解释说明,并注明不要直接用 sudoedit 编辑 sudoers 文件。因为一旦 sudoers 配置文件语法有误,sudo 会为了安全性,让整个配置文件都不起效,这可能导致用户失去使用 sudo 命令的能力、无法纠正前面的错误(失手关上了门并且把自己关在了门外),而只能直接使用 root 用户登录(甚至可能需要 live USB 进行急救)来编辑。而 visudo 命令会在编辑完成之后检查语法是否有效,如果有语法错误则不会使用这次更改的结果。详见 visudo 的手册

Thank you for the tip.