cron

cron 的 PAM 支持

(最后修改: Development #FreeBSD #cron #PAM #SysAdmin

在上一家公司的时候曾经有很多关于 cron(8) 的想法,但一直没有付诸实施,很多东西放在本地慢慢生锈了。

去年年底的时候我开始着手去修了一些 cron(8) 的 bug,其中包括为 cron 之前不够完整的 PAM 支持进行了改进。

背景:PAM

Pluggable Authentication Module (PAM) 为一系列身份验证相关的操作提供了一组通用的接口。 在没有 PAM 之前,应用程序需要实现大量重复的代码来完成类似的操作,例如要求用户输入密码并进行验证等。 这么做的问题在于缺乏灵活性,例如,管理员可能希望将用户数据保存到 LDAP 目录中, 或是使用指纹等新式验证方式。PAM 使这些相关操作可以通过插件来完成, 应用程序不再需要关心「如何验证用户身份」(用户名、密码等等是不是正确),而只需要向 PAM 询问 「该用户的身份是否合法?」即可。这层抽象简化了应用程序开发者的工作, 并且赋予了系统管理员更大的灵活性。

PAM 将系统的认证工作分成了四组基本操作:

  • auth:验证用户身份(比如检查密码)。
  • account:检查账户是否有效(比如是否过期、是否允许在此时间登录)。
  • password:用于修改密码。
  • session:会话管理,即用户「进门前」和「出门后」需要进行的环境搭建或清理工作。这是本次更新的核心。
阅读全文… ( 本文约 974 字,阅读大致需要 2 分钟 )