For the complete documentation index, see llms.txt. This page is also available as Markdown.

访谈:Michael W Lucas

摘自 BSDNow,第 329 集,录制于 2019 年 12 月。Allan Jude 和 Benedict Reuschling 采访了 Michael W Lucas。

Michael W Lucas 照片

BENEDICT REUSCHLING:Michael W Lucas 曾在这个节目中接受过几次采访。他上回接受采访是几个月前,我们认为你可能想了解他最近在做什么,以及他接下来的计划。以下是这次采访,享受吧!

REUSCHLING:欢迎,Michael!你最近发布了新书,我相信听众会想了解一下。能告诉我们这本书的内容吗?我听说它是关于 sudo 的。

《Sudo Mastery》封面

MICHAEL W LUCAS:感谢邀请我参加。是的,这本新书是《Sudo Mastery》的第二版。除非你使用 LDAP,否则 sudo 并未发生重大变化。但它做了很多小改动,因此,基本上这第二版就是为了跟上这些变化,确保信息准确反映今天的 sudo。我还深入探讨了一些推荐的配置更改。例如,sudo 现在有像校验和验证这样的功能,以确保二进制文件没有被篡改。当然,没人会手动计算每个二进制文件的校验和,更别提每次修补时还要更新它们了。所以,我为流行操作系统编写了一些脚本,用于自动计算所有文件的校验和。

REUSCHLING:哦,这真是很有用。

LUCAS:确实如此。如果你怀疑系统可能遭到外部篡改,校验和验证可能是解决方案。而且现在有一些新的调用方法。以前他们有工具,可以将 sudoer 文件转换为 LDAP 格式,那非常有用。但现在他们有了通用工具,可以将 sudoers 文件与 LDAP、JSON 格式之间相互转换。所以,你可以将 sudoers 文件转为任何你想要的格式。你可以将它提供给审计程序,确保一切符合你的要求。当然,书的封面也非常漂亮。

JUDE:确实!你能解释一下那个精美封面的不同版本吗?

书籍封面艺术

LUCAS:如果你购买电子书,你会得到非常漂亮的封面,基于经典的“狗玩扑克牌”图像。而且既然有人问过,是的,其中一个 BSD 穿着黑色高领毛衣确实有原因。另一个 BSD 悄悄给他递一张王牌,同样有原因。

如果你购买平装本,你会得到更完整的封面版本,硬封面则采用环绕式封面。如果你有精装本,护封会将艺术图案延续到内侧折页。所以,如果你在寻找既有趣又好看的书,这本书一定能满足你的需求。我对它的效果非常满意。

JUDE:那么,你的封面艺术尺寸越来越大。接下来你打算做什么呢?

LUCAS:我一直在思考接下来该做什么。我不至于束手无策,因为我有很多想法。但我刚刚完成了一个非常庞大的项目——jail 书(《FreeBSD Mastery: Jails》)。为了写这本书,我写了六本书。那是一个巨大的项目,所有的一切都是为了达到某个特定的目标。此外,推进过程中我还写了几本小书。我现在没有大计划,但我正在努力想出总体目标。无论我做什么艺术、书籍之类的,都将为这个目标服务。所以,我确实有些想法,谢谢,但我不打算让整个互联网都给我发建议。

REUSCHLING:现在可能已经太晚了!

JUDE:说到 jail 书,几乎所有使用 FreeBSD 的人都会从中学到很多东西,甚至像我这样已经使用了 jail 和 FreeBSD 多年的用户。书中的内容比我脑袋里的还多!在写这本书时,有什么让你惊讶的发现吗?

LUCAS:我从 1995 年末开始使用 FreeBSD,做这项工作迫使我回过头去复习我所知道的一切——而且自 1995 年以来有些东西发生了变化。我学到了很多文件系统的边缘情况。你可以用 DEVD 做一些非常了不起的事情,甚至 nullfs 也很有用。现在 jail 中有些控制精细得令人惊讶。我记得在过去,System 5 IPC 在 jail 中根本不可能使用,现在你可以为每个 jail 启用/禁用它,甚至可以单独为每个 jail 启用 System 5 IPC 的功能。我知道它被实现是因为人们需要它,但我有点害怕去了解为什么有人需要 System 5 共享内存——却不需要信号量。

JUDE:是的,我认为部分原因是在过去,IPC 的命名空间是统一的——你可能希望某个 jail 只能看到其中的一部分。尽管几年前,当我们最终得到了命名空间支持,能够让你在两个不同的 jail 中运行 Postgres,并且它们不会互相干扰,这个问题可能就不那么严重了。

LUCAS:我起初是这么想的,但这个功能后来演变了。所以,这是某种设计决策。我翻阅了 20 年的历史,事情发生的顺序真的很有启发性。这是迭代开发的绝佳例子。我的意思是,jail 在 1999 年和 2000 年救了我不少麻烦,它们在过去的几十年里悄悄发展起来。简单来说,jail 很难。它们汇集了系统管理的所有知识。你必须了解文件系统,必须了解升级。如果你有很多 jail,你真的需要某种编排或自动化。这些事情很快就会变得非常复杂,因为突然间,你可以在一台主机上运行 500 台虚拟机。你必须在一台主机上管理这 500 台虚拟机,这真的很糟糕。没有人愿意做这件事。

REUSCHLING:很多人最终会在需要使用 jail 时拿起这本书。

LUCAS:是的,它已经发布了。需要它的人会找到它。不需要的人嘛,他们的生活比我们其他人简单。

JUDE:哦,你知道,当我把 ZFS 和 jail 结合起来时,我做得过头了,直到我需要一个系统,让客户能够上传文件,但确保他们只能上传自己的文件等等。

LUCAS:是的,像这样的需求我一定会放在 jail 里。任何面对公众的东西,我都想放到 jail 里。

JUDE:是的,ZFS 和 jail 能如此契合真的很有趣,考虑到,一方面,Sun 在开发 ZFS 时将其与 zones 集成,zones 有点像 jail。但它们也有很大的不同,我们能够将它们很好地对接,我觉得这真的很令人高兴。

LUCAS:是的,我也觉得不错。我认为,让虚拟化感知文件系统时遇到的问题并非 zones 独有。它们只是设置了一个可以委托的文件系统,并且可以具有更低级别的权限。

JUDE:真的很有趣,你可以同时做到这两点。你可以将一个数据集放入 jail,基本上意味着你将它委托给 jail 中的 root。然后 jail 中的 root 可以再委托给该 jail 中的个别用户。

LUCAS:确实非常棒。

JUDE:嗯哼。

REUSCHLING:有一些用例你通常一开始不会想到,但后来你会发现,哦,是的,这是可能的,我也能看到它的应用场景。

LUCAS:没错,系统管理就是看你拥有的工具,弄清楚如何将它们拼接在一起解决问题。而 ZFS 是很棒的工具。

JUDE:那么,接下来,你是如何意识到世界需要一本关于简单网络管理协议(SNMP)的书的呢?

LUCAS:哦……因为它无处不在,而且现有的书都没让我激动。SNMP 其实并不像你想的那么难。

REUSCHLING:嗯,那就是“S”(简单)的意义吧,对吧?

LUCAS:是的,没错。其实,协议本身非常简单。它有七个部分——就这些。问题在于所有的供应商和实现者对这七个部分所做的事情。无论标准写得多么具体,总是有解释的余地。我们需要的不是讲它多么辉煌的书,而是讲“这些是组成部分,现状如此,这里教你如何弄清楚这些东西”的书。

当它正常工作时,非常棒。人们经常用 SNMP 监控。SNMP 非常适合网络管理。即使是今天,在与人们交谈和做研究时,还有人说,如果你有一个非常饱和的互联网连接,你可能需要向远程设备发出命令来解决问题。我们有 SNMPv3,很多人害怕它。经过深入了解,我认为,我们只是倒着教它。有时候,它是你唯一的解决方案,我不建议你围绕 SNMP 构建整个网络。但我会说,无论你是网络管理员还是系统管理员,你都需要知道它。有时候你需要那种特定的工具,或者一个工具能解决那些用其他方式很难解决的问题。它让人困惑的地方太多了。

JUDE:是的,你知道,它绝对是我工具箱里的工具,我不羞于承认我从来没有真正学过它。我只是通过摸索,勉强从中得到了我需要的东西。

LUCAS:是的,你只需两个数据包就能找到需要的信息。

JUDE:对。当我每 30 秒运行一次时,它比用更重量级的工具要好得多。

LUCAS:顺便说一下,我了解到一些事情,比如你可以通过 SSH 运行 SNMP 查询。

JUDE:哦哦!

LUCAS:我没有涵盖这一点,因为书已经够大了。但它确实是一些问题的可能解决方案。如果你已经有了证书授权基础设施,你可以通过 TLS 运行 SNMP。

JUDE:那还会通过 UDP 吗,还是那种情况下会转为 TCP?

LUCAS:它可以使用任何一种。DTLS 是在 UDP 上运行的 TLS。

JUDE:是的,用于数据报。

LUCAS:这里有很多选择。如果我能成功地引导人们,让他们能够把学习协议和学习供应商的奇怪配置分开,那就非常值得了。

REUSCHLING:为这本书做研究时,你还学到了关于 SNMP 的什么?

LUCAS:嗯,所有的事情都很糟糕,但这并不令人惊讶。让我们看看,很多人用它做了有趣的事情。有来自 MySQL、Postgres 和 Apache 的代理,可以直接插入到 net SNMP 中。所以,你可以轻松地从各种软件中提取统计信息。它是可以扩展的。你可以让 SNMP 在服务器上运行任意命令。这可能是好事,也可能不是,取决于你想要复杂到什么程度。

JUDE:还有图表趋势等等。

LUCAS:哦,是的,是的。当然,监控这些东西的问题在于,你不需要监控它们,直到它们严重出错——我喜欢系统管理!

JUDE:回头看,你的年度计划进行得如何?

LUCAS:嗯,我有很多想做的事情。大约一年前,他们切除了我的一半甲状腺,过去几年里困扰我的神秘健康问题都解决了。这太棒了!这太好了!这意味着我可以做所有事情。然后我又一次艰难地学到,我可以做很多事情,但不能做所有事情。我原本打算写的文字比实际多得多。但我接受了太多的旅行邀请,而旅行让我很不舒服。所以,我决定少旅行,多写书。我靠写字谋生。这是我一直想做的事情。我很幸运能够做到这一点,我只需要站在键盘前,做好工作。

JUDE:那说到这,你能告诉我们你接下来的计划吗?

LUCAS:我有几个关于技术书籍的想法。DNSSEC 的书需要更新。而且随着 DNS over HTTPS 越来越流行,这部分也应该加入其中。

JUDE:尤其是现在我们正处于大多数人都在使用它,却不理解这些内容的时代。

LUCAS:是的。

JUDE:人们是在了解情况后决定使用 DOH 的。

LUCAS:没错。对于生活在审查制度下的人们来说,这是很好的即时解决方案。然而,专制和审查国家不会容忍这类问题太长时间。

JUDE:是的,我认为最危险的部分是,它并不是完整的解决方案。如果你仅仅依赖它,你会遇到问题。

LUCAS:是的,确实会遇到很多问题。但我可以写一本关于如何设置它的书。电子邮件也可能是一本有趣的书。如今几乎没有关于如何设置完整电子邮件解决方案的书。所以,这是可能的。

JUDE:是的,做 DKIM 还不算太难,但新的 DMARC 相关内容让我非常困惑。

LUCAS:我认为电子邮件隐私基本上已经丧失了。即使你自己运行邮件服务器,你也很可能在和使用大型商业邮件公司的人通信。但尝试自己运行邮件服务器仍然值得,这是我一直关注的话题。我也开始考虑一些 OpenBSD 的事情——每次我提到写一本 OpenBSD 的书时,人们都会跳起来,想要下一本《Absolute OpenBSD》。让我说,没有明确的时间表——我很高兴你们想要,它会来的。

JUDE:那《git commit murder》的续集呢?

LUCAS:它在我的计划之中。我曾在病重时尝试写它。目前,我正努力完成 SNMP 书。非虚构类书籍带来了收入,我很高兴有这本书。我并不是看不起它,但我还没有足够多的小说来靠写 git commit 书籍谋生。我完成 SNMP 后会很高兴的。

REUSCHLING:今天有什么最后的想法吗,Michael?

LUCAS:我要感谢所有购买书籍的人,很高兴你们觉得这些书有帮助。如果你能坚持听完这次采访,还能忍受我喋喋不休这么久,谢谢你们。

REUSCHLING:感谢你,Michael,感谢你持续的写作和你的书籍。

P.S. 今天,Lucas 发现他关于减少旅行的说法令人不安地应验了。


最后更新于