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


Answers:


71

您主要使用visudo来防止破坏系统。Visudo会检查您的更改,以确保您没有弄乱任何东西。如果您确实弄乱了某些内容,则可能完全破坏了修复它的能力或执行任何需要特权的操作,而无需重启进入救援模式。

手册页对此进行了描述。

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


3
有趣!+1,用于说明我很久以前就应该知道的一些简单解释:)
Greg Meehan

7
visudo的行为通常可以通过称为sudoedit的命令获得。这执行相同的锁定/复制/编辑/复制/解锁周期(尽管显然不与解析步骤一起执行)。它的一个优点是,它使您可以在没有以root用户身份启动编辑器的情况下使人们sudo权限来编辑root拥有的文件,这可能使他们可以从编辑器内部启动shell。如果我在运行sudoedit时退出了编辑器,则我的euid仍然是我自己的。
James F

18

Zoredache的答案很完美。

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

export EDITOR=whatevertexteditoryouwant
export VISUAL=whatevertexteditoryouwant

要么:

EDITOR=whatevertexteditoryouwant visudo

如果这样做,它将仍然执行语法检查步骤,或者等同于调用sudoedit之类的@James F建议的?
o0'。

是的,是您的问题的答案。您可以使用几乎可以从cli调用的任何编辑器。
cstamas 2011年

3
这不是一个是或不是问题:V
o0'。

5
它将进行语法检查。
cstamas 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.