Answers:
visudo
在实际覆盖sudoers
文件之前检查文件语法。
如果您使用普通编辑器,请弄乱语法,然后保存... sudo
(可能)停止工作,并且由于/etc/sudoers
只能通过进行修改root
,因此您将被困住(除非您有另一种获取根的方法)。
另外,它确保编辑将是一次原子操作。如果您需要确保没有其他人可以弄乱您仔细考虑的配置更改,则此锁定很重要。除了以root用户身份编辑其他文件之外,/etc/sudoers
还有sudoedit
一条命令也可以防止此类编辑冲突。
sudo
并且OS X确实具有GNU工具。由于sudo最初是作为开放源代码应用程序创建的,因此可能没有理由要实现许多实现。sudo
和sudoedit
是相同的命令,sudo
与sudo -e
称为时一样sudoedit
。我相信这只是OS X忘记添加sudoedit -> sudo
链接,但是您仍然应该能够使用sudo -e
或调用sudo
argv [0] sudoedit
来获得相同的行为。
visudo
默认情况下使用nano。
sudo vim /etc/sudoers
并破坏语法,那么我将无法sudo vim /etc/sudoers
再次对其进行修复。实际上,由于系统无法解析文件,所有通过sudo提升特权的能力都将丢失。
从visudo手册页:
visudo锁定sudoers文件以防止同时进行多次编辑,提供基本的完整性检查并检查解析错误。如果当前正在编辑sudoers文件,您将收到一条消息,稍后再试。
还要从serverfault检查此答案。