随着 shadow >= 4.14.0
,Arch Linux 的默认密码哈希算法已从 SHA512 更改为 yescrypt。
此外,umask
设置现在配置在 /etc/login.defs
中,而不是 /etc/profile
中。
这应该不需要任何手动干预。
Yescrypt 的原因
选择基于密码的密钥派生函数 (KDF) 和密码哈希方案 yescrypt 是因为它已被采用(在 libxcrypt 中 readily available,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` 中