Solaris 让我使用相同的前 8 个字符使用不同的密码进入

glo*_*iza 42 password solaris

我不知道这是否正常,但问题是,假设我有一个名为Gloaiza的 Solaris 用户,其密码是password2getin

我正在使用 PuTTY 登录服务器,我只是输入了 192.168.224.100 并且它会提示一个窗口询问用户,所以我输入glaaiza,然后它要求输入密码,假设我错误地输入了password2geti它起作用了!我在服务器!

这是正常的吗?如果我放一些类似password2getin2 的东西,它也可以工作。

我的母语不是英语,所以,如果你有什么不明白的地方请问我

操作系统:Oracle Solaris 10 1/13

Gil*_*il' 65

操作系统将密码散列存储在/etc/shadow(或者,历史上,/etc/passwd; 或其他一些 Unix 变体上的不同位置)。从历史上看,第一个广泛使用的密码哈希是基于DES 的方案,其局限性在于它只考虑了密码的前 8 个字符。此外,密码散列算法需要很慢;基于 DES 的方案在发明时有点慢,但按照今天的标准是不够的。

从那时起,已经设计了更好的算法。但是 Solaris 10 默认使用基于 DES 的历史方案。Solaris 11默认使用基于迭代 SHA-256 的算法,该算法符合现代标准。

除非您需要与古代系统的历史兼容性,否则请切换到迭代 SHA-256 方案。编辑文件/etc/security/policy.conf并将CRYPT_DEFAULT设置更改为 5,代表crypt_sha256. 您可能还想设置CRYPT_ALGORITHMS_ALLOWCRYPT_ALGORITHMS_DEPRECATE

更改配置后,运行passwd以更改密码。这将使用当前配置的方案更新密码哈希。

  • @gloaiza 如果您的密码哈希文件与 NIS 或其他一些方法与运行真正古老的操作系统(如 Solaris 2.x)的机器共享,您可能会这样做。否则,没有。 (11认同)

jll*_*gre 21

这是意料之中的,至少在默认的 Solaris 10 和更早的配置上是这样。

您的系统正在使用传统的 Unixcrypt_unix算法,该算法确实将使用的字符数限制为 8 个。

这在passwd手册页中有记录

必须构造密码以满足以下要求:

  每个密码必须有 PASSLENGTH 字符,其中 PASSLENGTH 定义在
  /etc/default/passwd 并设置为 6。将 PASSLENGTH 设置为大于 8
  字符需要使用支持的算法配置 policy.conf(4)
  大于八个字符

因为这个算法基本上已经过时了。您应该crypt.conf通过设置CRYPT_ALGORITHMS_DEPRECATECRYPT_DEFAULT条目/etc/security/policy.conf文件切换到更好的东西(手册页中列出的可用值)。

请参阅http://docs.oracle.com/cd/E19253-01/816-4557/concept-63/index.html


And*_*nle 7

请参阅Oracle 论坛上的此主题

使用默认的“crypt_unix”密码加密方案时,您描述的行为是预期的。该方案只会对密码的前八个字符进行加密,因此再次输入密码时只需匹配前八个字符。这不是一个“错误”,而是算法的一个已知限制——它主要是为了向后兼容而保留的,不幸的是,它在安装时被设置为 Solaris 系统上的默认值。

要解决此问题,请将您的操作系统设置为使用 MD5 或 Blowfish 算法而不是 crypt_unix。

这可以在 /etc/security/policy.conf 文件中更改。您可以将 crypt 算法设置为允许,还有一个设置可以弃用(禁止)使用“crypt_unix”算法并将默认值更改为更安全的算法。

有关详细信息,请参见“Solaris 10 系统管理指南:安全服务”。

另请参阅更改密码算法(任务列表),尤其是如何指定密码加密算法

为您选择的加密算法指定标识符。

...

在 /etc/security/policy.conf 文件中输入标识符作为 CRYPT_DEFAULT 变量的值。

...

有关配置算法选择的更多信息,请参阅policy.conf(4)手册页。