为什么我必须用 visudo 编辑 /etc/sudoers?

Bri*_*tle 53 security linux unix configuration sudo

我注意到 sudoers 文件和 cron 配置文件与 Linux 上的其他配置文件相比以一种特殊的方式运行。它们需要使用特殊的包装器而不是任何文本编辑器进行编辑。为什么是这样?

Zor*_*che 73

您主要使用 visudo 来防止破坏您的系统。Visudo 会检查您的更改以确保您没有搞砸任何事情。如果您确实搞砸了某些事情,您可能会完全破坏修复它的能力,或者无需重新启动进入救援模式即可执行任何需要特权的操作。

手册页对此进行了描述。

visudo 以安全的方式编辑 sudoers 文件,类似于 vipw(8)。visudo 针对多个同时编辑锁定 sudoers 文件,提供基本的健全性检查,并检查解析错误。如果当前正在编辑 sudoers 文件,您将收到一条消息,稍后再试。

  • visudo 的行为一般可用作名为 sudoedit 的命令。这执行相同的锁定/复制/编辑/复制/解锁循环(尽管显然不是解析步骤)。这样做的一个优点是,它允许您授予人们 sudo 访问权限来编辑 root 拥有的文件,而无需以 root 身份启动编辑器,这可能会让他们从编辑器中启动 shell。如果我在运行 sudoedit 时退出我的编辑器,我的 euid 仍然是我自己的。 (7认同)
  • 有趣的!+1,用于说明我很久以前应该知道的事情的简单解释:) (3认同)

cst*_*mas 19

Zoredache的答案是完美的。

还有一件值得一提的事情。您可以通过设置EDITOR或使用您喜欢的编辑器VISUAL

export EDITOR=whatevertexteditoryouwant
export VISUAL=whatevertexteditoryouwant
Run Code Online (Sandbox Code Playgroud)

或者:

EDITOR=whatevertexteditoryouwant visudo
Run Code Online (Sandbox Code Playgroud)

  • 它会**做**语法检查。 (5认同)
  • 这不是一个是或否的问题:V (3认同)