1985年,我是明尼苏达州圣奥拉夫学院的一名大一新生。学院有一台 VAX 11/780 计算机,运行 4.2BSD 系统,还有一台 PDP-11/70 计算机,运行掺有伯克利和本地一些代码的 UNIX V7。除了拨号进入一两个 MS-DOS 论坛之外,这是我第一次体验多用户系统。

学院的学术计算中心把 4.2BSD 的手册打印出来,再加上一些本校的文档,对外公开出售,所以学生们就可以学习如何使用 UNIX 系统了。一个星期时间里,我坐在科学中心终端室,开始通读 VAX 上按字母排序的命令列表,尝试每一个命令并查阅相应的帮助文档,了解这些命令的使用方法。

最后我看到了 “su” 这个命令。“成为超级用户”?这是什么意思?难道要穿上一件斗篷吗?听起来还是蛮有趣的,所以我试着用了一下。太令我失望了,它只是要求我输入了密码,而没做任何事情。

没过多久,有人跑进房间冲我嚷道,“你是 David MacKenzie 吗?你刚才运行 ’su’ 命令了吗?” “是的...它有什么用?” “呃,别执行那个命令。” 我刚才看似运行失败的 “su” 命令,其实已经让我登入了系统控制台,有一名系统管理员担心有人故意搞破坏。

大约在一年内,当我的能力达到要求时,我被聘为一名学生系统程序员,我终于有了 VAX 的根用户(root)访问权限。当 4.3BSD 发布时,我参与了这台机器的更新升级工作。

最近,我正在一个 CentOS Linux 虚拟机上工作,需要查看 “su” 的命令行选项。由于过去几年里,我主要工作在 Mac 上面,在那儿命令 “sudo” 才是首选,因此我的 “su” 命令技能已经生锈了。我执行 “man su”,得到了需要的信息。然后在屏幕的底部,我羞愧地读到了一句话:“由 David MacKenzie 编写”。

在1990年,为了填补 GNU 工具集的部分缺失,我设计实现了 GNU 的 “su” 命令,时至今日,我早已将此事忘记。该命令现在仍然是 Red Hat 以及其它一些 Linux 发行版的默认命令之一。

至少我现在知道它可以用来做什么了。


作者:David MacKenzie,音频 & 视频 & 信息技术工程师,前 UUNET 程序员 & 系统管理员。

原文: From Novice to Master, and Back Again

感谢: Jodoo 帮助审阅并完成校对。