了解为什么终端不允许您输入密码

无法在终端中输入密码?是的,你可以,只是不显示” />  </p>
<p>有时您需要在终端中输入密码,通常用于 sudo 或 su 命令,这可以让用户以超级用户权限执行命令。这对于允许访问读取或修改标准用户帐户无法访问的内容来说是相当典型的。你通常会看到 sudo 在另一个命令前加上前缀,看起来像“<a href=sudo nano /etc/hosts“。虽然大多数命令行和sudo通常只适合高级用户,偶尔更多的普通计算机用户可能需要求助于终端,可能用于启用功能、修改系统文件,甚至用于故障排除目的。对于最终使用命令行的新手用户,在终端中输入密码时会出现一个非常常见的问题,几乎总是与 sudo 和明显无法在 Mac OS 的命令行中输入密码有关X(或 Linux)。

但事情是这样的; 终端确实让您输入密码,只是看起来不像。屏幕上的光标不会移动,并且根本没有输入密码的指示。这是有意为之的,作为一种安全机制,与在 Web 表单或标准 GUI 登录屏幕中输入密码不同,后者通常被屏蔽为像 ********* 这样的星号或像 ••••••• 这样的项目符号••••••,没有任何显示完全是故意的,并且没有在命令行输入密码的指示。原因很简单,它没有指示密码的长度,为密码输入提供了一些进一步的混淆。

如果这听起来令人困惑,其实一点也不,下面是它在实践中的工作原理。假设您执行一个需要 sudo 访问权限的命令,从而调出熟悉的“密码:”条目。

% sudo cat /etc/secret.conf
密码:

当密码:请求出现时,仍然输入密码,即使没有显示任何内容,然后在完成后按 Return。同样,没有迹象表明正在输入密码,这是故意的。

终端不会明显输入密码, 但输入的是

所以让我们再次运行前面的示例命令,假装这台特定机器上的管理员密码是“Monkey123”,尽管根本没有显示,但您会按照要求输入该密码,这意味着序列将类似于:

% sudo cat /etc/secret.conf
密码:Monkey123(按回车键)

这将执行命令。不,Monkey123(或任何管理员密码)不会出现在屏幕上,也不会出现任何星号或项目符号。

在终端中输入密码不会显示,这是故意的”/>  </p>
<p>要 100% 绝对清楚:</p>
<h4>作为安全措施,终端密码在输入时不会显示,无论如何请在要求时输入密码并按回车键</h4>
<p>输入密码并按回车键将提交密码进行身份验证,假设密码输入正确,命令将按预期执行。</p>
<p>通常,用户只需体验一两次即可了解它的工作原理,但对于刚开始接触命令行的用户来说,这仍然是一个很好的问题。一旦您知道了,您就可以将知识传递给其他人,所以如果有人问您“为什么终端不让我输入密码?”,您现在可以回答并向他们解释。</p>
<p>对于那些想知道的人,是的,这个默认行为可以更改为在命令行中为 sudo、su 或您正在执行的任何其他操作显示作为密码输入的每个字符的星号。尽管如此,不建议进行这种更改,我们也不打算在这篇特定的文章中介绍它……如果有兴趣的话,也许将来会这样做。</p>
<p>您如何看待这种在终端中隐藏密码长度和条目的安全措施?很长一段时间以来,它一直是 unix 世界的标准做法,但你觉得它在 Mac 上也有用吗?在下面的评论中让我们知道您的想法。</p>

			<div class=