密码存储在哪里?

对于可以登录的用户,如何确定用户密码的存储位置? 我知道系统正在为用户使用LDAP(用户名,主路径等),但它不包含任何类型的密码。 我可以访问已配置的计算机,那么如何确定密码在哪里? (哪个配置文件?)

密码不会存储在自己的密码中。 它们由函数转换,并且存储如此产生的值,称为hash

如果登录,则对输入执行相同的function,并将生成的值与/etc/shadow文件中存储值中的值进行比较。

该function是一种很难反转的function。 因此,使用/ etc / shadow中的值,您无法计算原始密码,并且其中的密钥对登录没有帮助 – 您需要密码。

使用powershell,您可以尝试生成这样的密码,对于常见的名称,如123456, password, asdf, secret, 1111等,阴影值已经众所周知,并存储在所谓的rainbow-tables

为了防止使用rainbow-tables攻击,密码函数可以使用salt ,这会影响结果,这意味着每个密码使用不同的salt,存储在密码哈希字符串的前两个字节中(感谢psusi,谁更正了me),所以你需要为每个密码设置一个不同的彩虹表,这不是很实用 – 生成它们需要很长时间,并且价格昂贵。

我不确定,ubuntu是否使用盐。 我们可以等待向我们解释它的人,或者您可以在两台机器上生成具有相同密码的相同用户,并比较/ etc / shadow中的值。

密码(或更好的哈希)很可能存储在LDAP服务器中。 “最有可能”意味着你可能会有一个非常奇怪的设置,而不是。 LDAP配置非常灵活,但这也意味着在不检查配置文件的情况下,无法给出关于如何在您的情况下完成配置文件的明确答案。 您可能已经查看了客户端上的/etc/ldap.conf以获取配置的详细信息?

LDAP身份validation的一种可能设置如下:客户端框从登录中获取用户名和密码,并使用此信息执行 LDAP服务器的绑定 。 LDAP服务器validation用户名和密码,并返回成功或失败。 在此设置中,客户端框永远不会从LDAP服务器看到存储的密码哈希。

你知道使用的LDAP服务器的类型吗? 是否可以看到散列的用户密码取决于LDAP服务器的设置。 有关您可以在OpenLDAP服务器上配置的内容,请参见http://www.faqs.org/docs/securing/chap26sec213.html 。

来自“用户未知”的密码散列的答案是正确的,只是哈希不存储在/etc/shadow而是存储在LDAP服务器中。 散列本身也可以由LDAP服务器而不是客户端框执行。

你试过了吗
– phpldapadmin?
– ldapsearch -LLL -x -b“dc = your,dc = domain”uid = *(或用用户名替换*,也许是cn而不是uid)
如果密码存储在ldap中,您应该使用此方法查看它们。

如果计算机是域控制器,也许它安装了smbldap-tools,那么您只需使用smbldap-passwd用户名重置密码

您可能还需要检查pam.d config(/etc/pam.d/common-*)以找出您的计算机正在使用的登录机制。