我想知道如何密码策略“你的新密码必须至less有n个字符从你的旧密码”的作品。
我的理解是操作系统从来没有实际存储旧密码本身 ,而是他们的哈希代码 。 而且如果你只有他们的散列码 ,那么就无法知道这两个string有多less个字符。
我猜猜它只有在passwd程序同时明确询问你 的旧密码的情况下才能工作吗?
而且,如果一个root用户更改其他人的密码,那么这个“不同字符的数量”策略在这里就不能适用了吗?
你是对的。 如果密码存储为散列,那么操作系统绝对没有办法知道新密码与旧密码的区别。
策略检查是从该工具完成的,因为该工具还要求您input旧密码,然后根据一组策略规则检查差异,所以该策略将起作用。
这些政策通常通过在申请旧密码时应用这些政策来实施。
另一个select是蛮横的旧的。 当你input新的密码时,一台现代的计算机没有任何问题来强制所有与新密码相差2个字符的密码。 据我所知,这在典型的linux发行版中没有用于正常的身份validation,但是可能有一些PAM模块实现了这一点。
根改变密码的通常方法是假定超级用户知道他在做什么。 passwd程序不会要求input旧密码,而是允许您自行承担最小长度的规则。
而且,如果一个root用户更改其他人的密码,那么这个“不同字符的数量”策略在这里就不能适用了吗?
pipe理用户通常可以直接操作密码数据库,所以所有的密码策略都可以被用户忽略。
例如,root可以提供一个散列的密码(使用usermod -p ),这个密码将被逐字地设置,或者编辑/etc/shadow并在那里设置散列密码。
这也是为什么pipe理用户应该被提高到更高的标准,并且在为用户分配密码的时候训练自己使用密码生成器的又一个原因。