每台OS X计算机上只有一个 root帐户,默认情况下它被禁用。它没有密码,除非您专门使用Directory Utility并启用它,否则您不能以root用户身份登录。这很危险,因为以root用户身份登录时,系统会绕过所有授权-甚至不要求输入密码。在这方面,OS X计算机确实是无根的,这是A Good Thing™。
管理员帐户只是标准帐户,也恰好在管理员组中。已登录用户在OS X中执行的任何操作都将根据授权数据库进行检查(您可以在/System/Library/Security/authorization.plist中查看其规则,以查看是否不需要身份验证或足以进行身份验证为会话所有者(已登录的标准用户),或者您必须是admin组的成员。它提供了非常细粒度的控制,因此可能发生三种可能性,例如在“ 系统偏好设置”中单击锁定的挂锁时。单击后,它可能会简单地解锁而不进行身份验证,它可能会提供带有已输入帐户名的身份验证对话框(这意味着请确认您是您),或者可能会提供带有帐户名和密码字段为空的身份验证对话框(这意味着您不是管理员,请致电管理员以输入其凭据)。
一条经验法则是,任何可能影响计算机上其他用户(系统范围内的更改)的内容都将需要管理身份验证。但这要复杂得多。例如,标准用户可以从Mac App Store的/ Applications文件夹中安装应用程序(这是系统范围的更改),但是即使仅在自己的数据内,也无法绕过GateKeeper来运行未签名的应用程序。标准用户不能调用sudo,它的副作用很严重,即在10-15分钟后不需要身份验证。设计巧妙的脚本会要求您对所批准的内容进行管理员身份验证,但此后它将执行所有您一无所知的古怪内容。
还可以通过家长控制或配置配置文件来管理标准用户,并且可以强制实施密码策略。管理员用户无法执行此操作。
系统完整性保护解决了以下事实:人们一直在通过安装程序包单击并提供密码,因此用户已成为最薄弱的环节。SIP只是试图保持系统正常运行,而没有其他事情(有时也会失败)。
您不会相信我看到有多少人在计算机上只有一个用户(这也是admin帐户),甚至没有帐户密码,也不会以登录窗口活动的形式感到烦恼。
我不同意您的观点,认为在必要时切换到管理员帐户很痛苦。如果您在终端机中,则只需执行任何操作(包括sudo或通过执行/System/Library/CoreServices/Finder.app/Contents/MacOS/Finder来以其他用户身份启动Finder)之前,先使用su myadminacct。
在GUI中,Mac App Store更新(包括OS X更新)不需要管理员身份验证。那些最终包含在Downloads文件夹中的安装程序包,包括Adobe Flash更新,是的,在进行额外的工作并确保它们来自正确的位置并且没有麻烦的时候,打开这些文件时,应格外小心。
这就是为什么我认为使用具有标准帐户的Mac比使用管理员更好和更安全的原因,因为它可以保护我免受自己的错误和疏忽。即使是大多数知识渊博的用户,也不会逐行检查每个下载的脚本,以查看是否发生了任何麻烦。
我希望这些控件将来能变得更加严格,例如,引入条件或时间表,以便在运行应用程序(或脚本或任何可执行文件)或访问网络时,或者如果我没有执行,甚至可能无法启动可执行文件在上个月左右的时间内未明确允许它(身份验证对话框)。