Всплывающее окно смены пароля sssd

Я перенес один из наших джамп-серверов с openldap/nscd на клиент sssd. Сервер работает под управлением Ubuntu 14.04 x64. Все работает нормально, за исключением одной очень важной особенности: диалоговое окно сброса пароля не появляется, когда пользователь проходит аутентификацию с просроченным паролем. На нашем сервере ldap установлена ​​политика хранения в течение 90 дней (OpenLdap 2.4). Игра с разными флагами в /etc/sssd/sssd.conf не принесла желаемого результата Вот sssd.conf

# LDAP sssd config
[sssd]
debug_level = 8
domains = mydomain.local
config_file_version = 2
reconnection_retries = 3
services = nss, pam, ssh, sudo

[domain/mydomain.local]
debug_level = 8
cache_credentials = true
entry_cache_timeout = 600
ldap_search_base = dc=mydomain,dc=local
ldap_sudo_search_base = ou=SUDOers,dc=mydomain,dc=local
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
sudo_provider = ldap
subdomain_homedir = /home/%d/%u
ldap_uri = ldaps://10.10.10.10
ldap_tls_reqcert = allow
account_cache_expiration = 7
ldap_schema = rfc2307
ldap_pwd_policy = shadow
ldap_chpass_update_last_change = true
pwd_expiration_warning = 0
reconnection_retries = 3
access_provider = simple
simple_allow_groups = Access_Jumpserver

[nss]
debug_level = 8
filter_groups = root
filter_users = backup,bin,daemon,Debian-exim,games,gnats,irc,list,lp,mail,man,messagebus,news,root,smmsp,smmta,sshd,sync,sys,syslog,uucp,uuidd
reconnection_retries = 3
enum_cache_timeout = 300
entry_cache_nowait_percentage = 75

[pam]
debug_level = 8
pam_verbosity = 8
reconnection_retries = 3
offline_credentials_expiration = 7
offline_failed_login_attempts = 5
offline_failed_login_delay = 15

[sudo]
debug_level = 8

Я был бы рад любому направлению здесь


person nix-power    schedule 22.04.2020    source источник


Ответы (1)


В качестве временного решения я использую следующую функцию в сценарии входа в систему, которая вызывается из /etc/bash.bashrc.

calculate_pwd_age() {
 local MAX_AGE=90
 let "shdw_epoch = $(ldapsearch -x -LLL -H ldaps://10.0.0.1 "uid=${USER}" shadowLastChange | awk 'NR==2{print $2}')"
 let "today = $(date +'%s') / 86400"
 let "shdw_diff = ${today} - ${shdw_epoch}"
 if [[ ${shdw_diff} -ge ${MAX_AGE} ]]; then
   echo -e  "\nYour password has expired. Please change it right now:\n"
   sleep 2
   passwd
 fi
}
person nix-power    schedule 24.04.2020