Вероятно, это зависит от настройки в Active Directory — она устанавливается в групповой политике в: Интерактивный вход: предлагать пользователю сменить пароль до истечения срока его действия.
Так что уточните у администратора AD. Можно применить эту политику к подразделениям, поэтому, если ваша учетная запись находится в определенном подразделении, можно установить более длинное предупреждение. Это технически возможно, по крайней мере. Могут быть эксплуатационные ограничения.
Кроме того, подключена ли машина через твердотельный накопитель
? Стоит прочитать эту статью, чтобы узнать, есть ли что-то в sssd.conf
это может переопределить значение, отправленное из AD. Если он не установлен в sssd.conf
вообще, он просто наследует то, что отправляет 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 наносекунд. Итак, для простого расчета:
$тикИнтервал = 10000000
$unixEpochDiff = 11644473600
# интервал, полученный из msDS-UserPasswordExpiryTimeComputed
$ADPasswordExpiryTime = 132985454614249065
$unixTime = ($userPasswordExpiryTime / $tickInterval) - $unixEpochDiff
В настоящее время у меня нет возможности протестировать запрос LDAP из системы на базе Linux в AD, но, возможно, стоит попробовать, если больше ничего не помогает.