随着 shadow >= 4.14.0,Arch Linux 的默认密码哈希算法从 SHA512 更改为 yescrypt。
此外,umask 设置现在配置在 /etc/login.defs 中,而不是 /etc/profile。
这不应需要任何手动干预。
Yescrypt 的原因
之所以选择基于密码的密钥派生函数 (KDF) 和密码哈希方案 yescrypt,是因为它已被采用(在 libxcrypt 中易于获得,而 libxcrypt 被 pam 使用),并且与 SHA512 相比,它对密码破解尝试具有更强的抵御能力。
尽管 密码哈希竞赛 的获胜者是 argon2,但该算法尚未在 libxcrypt 中提供(尝试一,尝试二)。
配置 yescrypt
/etc/login.defs 中的 YESCRYPT_COST_FACTOR 设置目前无效,直到 pam 实现读取其值。如果需要高于(或低于)默认值(5)的 YESCRYPT_COST_FACTOR,则可以使用 pam_unix 模块的 rounds 选项进行设置(即在 /etc/pam.d/system-auth 中)。
更改的总体列表
- yescrypt 用作默认密码哈希算法,而不是 SHA512
- pam 遵守
/etc/login.defs中选择的ENCRYPT_METHOD,不再覆盖选定的方法 - filesystem (>=
2023.09.18) 和 pambase (>=20230918) 包的更改确保umask在/etc/login.defs中集中设置,而不是在/etc/profile中设置