PAM farklı dil / yerel ayarları kullanacak şekilde nasıl yapılandırılır


1

Şu anda ISO-8859-1 karakter kümesine sahip bir veritabanı istemcisi kullanıyoruz. Ubuntu sunucusu de_DE.utf8 ile çalışıyor. Kullanıcı 7-bit ascii'den başka karakterler içeren bir kullanıcı adı veya şifre kullanırsa, başımız belada demektir.

/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 / yerel

LANG="de_DE"
LC_CTYPE="de_DE"
LC_ALL="de_DE"

Ancak PAM yapılandırması çalışmıyor:

/var/log/auth.log (7 bit ascii olmayan bir şifre ile)

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]

Ben de LANG = de_DE.iso88591 'i / opt / IBM / informix / etc / locale' de başarılı olamadım. Sorun nedir


ISO-8859-1 yerelini oluşturdunuz mu? sudo locale-gen de_DE(varsayılan olarak orada değil).
Gunnar Hjalmarsson 19:16

Evet: #locale -a C C.UTF-8 de_AT.utf8 de_BE.utf8 de_CH.utf8 de_DE de_DE.iso88591 de_DE.utf8 de_LI.utf8 de_LU.utf8 en_AG enut_8.utf8 en_A. en_GB.utf8 en_HK.utf8 en_IE.utf8 en_in en_IN.utf8 en_NG en_NG.utf8 en_NZ.utf8 en_PH.utf8 en_SG.utf8 en_US.utf8 en_ZA.utf8 en_ZM en_ZM.utf8 en_ZW.utf8 POSIX
Michael S.

Kesinlikle bir uzman değilim, ancak bu yaklaşımın işe yaraması gerektiğini bilip bilmediğinizi sormak zorundayım. IIUC, parola hala UTF-8 kodlu karakterler içeriyor; siz ona ISO-8859-1 olarak yorumlamasını söylemeye çalışıyorsunuz.
Gunnar Hjalmarsson

Pc modülü hala farklı bir karakter kümesi kullanırken, informix istemcisinin kullanıcı ve şifre için kesinlikle ISO-8859-1 karakterlerini kullandığını tcpdump ile doğruladım.
Michael S.

Ortamın yanı sıra kullanıcı adı ve düz parolanın içeriğini yazmak için küçük ve basit bir C pam eklentisi yazdım. Kullanıcı adı ve parola ISO-8859-1 karakterlerdir ve pam_env.so ortamı ISO-8859-1 olarak değiştirmez.
Michael S.,

Yanıtlar:


0

Kendinden yazılı PAM Modülü ile

.
.
/* 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);
.
.

iyi çalışıyor:

#
# 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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.