我有一个Ubuntu桌面客户端加入到一个2008 R2域。
我需要在Linux上使用"kinit“命令来确定用户密码何时过期。这是我的方式,因为其他脚本运行在系统上,所以不能/不想改变这种方法。
然而,据我所见,kinit返回密码过期警告7天或更低。我能改变这种态度吗?是什么使kinit返回7天或更短时间内的密码过期警告信息?
发布于 2022-03-11 02:41:19
它可能取决于Active Directory中的设置--它设置在组策略中:交互式登录:提示用户在过期前更改密码。
所以请向AD管理员查询。可以将此策略限定为OU,因此,如果您的帐户驻留在特定的OU中,则可以在其中设置更长的警告。至少在技术上是可能的。可能存在操作上的限制。
另外,机器是通过sssd连接起来的吗?值得阅读这篇文章,看看sssd.conf中是否有什么东西可以覆盖从AD发送的值。如果它根本没有在sssd.conf中设置,那么它将只是继承AD发送的内容。https://access.redhat.com/articles/3027531
如果域名管理员说它被设置为7天,并且不会改变,那么还不清楚您是否能够配置sssd.conf来提供更长的警告间隔--我怀疑它是否能够以这种方式覆盖AD。
或者,您可以对AD用户帐户执行LDAP查询,并获取一个名为msDS-UserPasswordExpiryTimeComputed的属性--该属性的值超过了Windows日期。
要计算Linux系统上的日期,Windows时代的日期是1601-01-01T00:00:00Z,即*nix时代(1970-01-01T00:00:00Z)之前的11644473600秒。Windows滴答以100纳秒为单位。因此,对于一个简单的计算:
$tickInterval = 10000000
$unixEpochDiff = 11644473600
# interval captured from msDS-UserPasswordExpiryTimeComputed
$ADPasswordExpiryTime = 132985454614249065
$unixTime = ($userPasswordExpiryTime / $tickInterval) - $unixEpochDiff目前,我无法从基于Linux的系统测试LDAP查询到AD,但如果没有其他帮助的话,这是值得一试的。
https://serverfault.com/questions/1095411
复制相似问题