Предупреждение об истечении срока действия пароля 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, но, возможно, стоит попробовать, если ничего не поможет.

Другие вопросы по тегам