了解为什么终端不允许您输入密码
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(或任何管理员密码)不会出现在屏幕上,也不会出现任何星号或项目符号。