sudo 命令的作用是什么?

sudo 命令的作用是什么?

我整个职业生涯都是使用 Windows。我刚买了一台 MacBook Pro,想开始使用 Ruby on Rails 进行开发。

我遇到过几个建议使用该sudo命令的安装指南。据我所知,该sudo命令允许您以管理员身份运行命令。

我不明白的是......我的 Mac 上只有 1 个用户帐户,我不应该默认为管理员用户吗?

为什么我需要使用该sudo命令?

我是否正确理解sudo了什么?

答案1

在 Mac 上,默认情况下,您用于登录的用户不是超级用户 (root) 帐户。这是一项安全功能(最小权限) 这是设计使然。

与该安全模型一起sudo提供的工具允许普通(非 root)用户根据具体情况执行 root 任务。

这可以防止一系列问题,其中最严重的问题就是意外损坏你的机器。:)

答案2

您遇到的困惑部分在于术语。在 OS X 中,您会遇到 3 个主要级别的帐户权限:

root(又称超级用户、系统管理员或系统):这是一个特定帐户(而不仅仅是一种帐户类型),通常拥有所有权力。例如,root 可以完全访问系统上的所有文件,无论其权限如何。以 root 身份登录通常不是一个好主意,因此默认情况下该帐户是禁用的(并且大部分是隐藏的)。这大致相当于您可能称之为“管理员”。

(更新:在 macOS 的最新版本中,root 的权限已受到限制,以限制获得 root 访问权限的恶意软件造成的损害。系统完整性保护 (SIP)只读系统卷保护操作系统本身,并且透明度同意与控制 (TCC)限制对用户个人信息的访问。)

管理员:这是您拥有的帐户类型;它允许进行系统范围的更改,但通常必须执行一些特殊操作(即单击挂锁图标并进行身份验证)才能启用该访问权限。例如,如果您尝试复制您没有读取权限的文件,Finder 将要求您在复制文件之前进行身份验证。该sudo命令是另一个例子——它允许管理员暂时将自己提升为 root。

标准用户:没有特殊权限,不允许干扰(大多数)系统范围的设置或绕过访问限制。

还有第四类:托管帐户是应用了“家长控制”的标准帐户。

答案3

我没有 Mac,但我是 Unix 用户。不,你不是唯一的用户,出于安全原因,你以普通用户身份运行。想象一下,你下载了一个病毒程序并以管理员身份运行它,你的整个系统可能会被破坏。但如果你以普通用户身份运行它,只有你的主目录可能会被感染,而不是整个系统。

它还可以防止你错误地执行一些危险的任务(例如 rm -rf /*,这将删除硬盘上的所有文件,甚至系统)

您可以在日常使用中使用超级用户,但我们强烈不建议这样做。

相关内容