В настоящее время мы используем клиент базы данных с набором символов ISO-8859-1. Сервер Ubuntu работает с de_DE.utf8. Если пользователь использует имя пользователя или пароль, содержащие другие символы, кроме 7-битной ascii, у нас возникнут проблемы.
/etc/pam.d/informix
#
# Then PAM configuration file for the Shadow `informix' service
#
# More verbose
auth required pam_warn.so debug
# Environment
auth required pam_env.so readenv=1 envfile=/opt/IBM/informix/etc/locale user_readenv=0
# Disallows other than root logins when /etc/nologin exists
auth requisite pam_nologin.so
# Standard Un*x authentication.
@include common-auth
/ opt / IBM / informix / etc / locale
LANG="de_DE"
LC_CTYPE="de_DE"
LC_ALL="de_DE"
Но конфигурация PAM не работает:
/var/log/auth.log (с паролем, содержащим не 7-битный ascii)
Jul 19 15:46:54 myhost oninit: pam_warn(informix:auth): function=[pam_sm_authenticate] service=[informix] terminal=[<unknown>] user=[myuser] ruser=[myuser] rhost=[myclient]
Jul 19 15:46:54 myhost oninit: [lsass-pam] [module:pam_lsass]pam_sm_authenticate error [login:myuser][error code:40067]
Я также попробовал LANG = de_DE.iso88591 в / opt / IBM / informix / etc / язык без успеха. Что не так?
С сам записанный Модуль PAM
.
.
/* Convert charset */
iso2utf((char*) pUsername, (char*) &szuser, sizeof(szuser));
iso2utf((char*) pPassword, (char*) &szpass, sizeof(szpass));
/* Setting pam items */
pam_set_item(pamh, PAM_USER, (char*) &szuser);
pam_set_item(pamh, PAM_AUTHTOK, (char*) &szpass);
.
.
это хорошо работает:
#
# Then PAM configuration file for the Shadow `informix' service
#
# Informix user + password conversion
auth sufficient informix_pam.so
# Disallows other than root logins when /etc/nologin exists
auth requisite pam_nologin.so
# LDAP authentication
auth required pam_lsass.so try_first_pass