Предупреждение об истечении срока действия пароля kinit
У меня есть настольный клиент Ubuntu, присоединенный к домену Active Directory 2008 R2.
Мне нужно использовать команду «kinit» в Linux, чтобы определить срок действия пароля пользователя. Это мой путь, поскольку в системе работают другие сценарии, поэтому я не могу/не хочу менять этот подход.
Однако, насколько я видел, kinit возвращает предупреждение об истечении срока действия пароля в течение 7 дней или меньше. Могу ли я изменить это отношение? Что заставляет kinit возвращать предупреждение об истечении срока действия пароля в течение 7 дней или меньшего периода времени?
1 ответ
Вероятно, это зависит от настроек в Active Directory — они установлены в групповой политике в разделе: Интерактивный вход в систему: предлагать пользователю сменить пароль до истечения срока его действия .
Так что обратитесь к администратору AD. Эту политику можно распространить на подразделения, поэтому, если ваша учетная запись находится в определенном подразделении, возможно, там можно будет установить более длительное предупреждение. По крайней мере, это технически возможно. Могут быть эксплуатационные ограничения.
Кроме того, подключена ли машина черезsssd
? Стоит прочитать эту статью, чтобы узнать, не переопределяет ли что-то значение, отправленное из AD. Если он вообще не установлен, он будет просто наследовать то, что отправляет AD. https://access.redhat.com/articles/3027531
Если администратор домена говорит, что для него установлено значение 7 дней и оно не изменится, неясно, сможете ли вы настроитьsssd.conf
чтобы обеспечить более длительный интервал предупреждения - я сомневаюсь, что он сможет таким образом переопределить AD.
В качестве альтернативы вы можете выполнить запрос LDAP к учетной записи пользователя AD и получить свойство с именемmsDS-UserPasswordExpiryTimeComputed
- значение там находится за пределами даты эпохи Windows.
Чтобы вычислить дату в системе Linux, дата эпохи Windows — 1601-01-01T00:00:00Z, что на 11644473600 секунд раньше эпохи *nix (1970-01-01T00:00:00Z). Тики Windows составляют 100 наносекунд. Итак, для простого расчета:
$tickInterval = 10000000
$unixEpochDiff = 11644473600
# interval captured from msDS-UserPasswordExpiryTimeComputed
$ADPasswordExpiryTime = 132985454614249065
$unixTime = ($userPasswordExpiryTime / $tickInterval) - $unixEpochDiff
В настоящее время у меня нет возможности протестировать запрос LDAP из системы Linux в AD, но, возможно, стоит попробовать, если ничего не поможет.