[Samba-it] Samba PDC non aggiorna campo sambaPwdMustChange

Silvio Fabi - NBS srl s.fabi at nbsgroup.it
Mon Nov 16 02:17:40 MST 2009


Salve a tutti, ho un PDC Samba con l'ultima versione 3.4.3 con 
repository LDAP su una RHEL 5.2.
Tutto funziona correttamente, nel senso che aggiungo senza problemi le 
macchine in dominio, gli utenti riescono a loggarsi sulle macchine e 
prendere le policy di sicurezza che ho impostato, accedere alle cartelle 
condivise sul server e scaricare la posta da qmail. Ho un problema  però 
con il cambio password da windows attraverso la procedura CTRL-ALT-CANC, 
infatti l'utente riesce a cambiare la propria password in maniera 
corretta, in seguito a questa azione si aggiornano tutti i campi 
necessari sul LDAP meno che uno, il campo "sambaPwdMustChange". Il 
comportamento che io mi aspetto è questo: l'utente ha una password che 
dura 90 giorni, la password può essere modificata in qualsiasi momento, 
non può essere più corta di 8 caratteri ed ha una ciclicità di tre cambi 
prima di poter riusare la prima, quando esegue CTRL-ALT-CANC da windows 
cambia la propria password tenendo conto delle policy impostate ed  
ricalcola e aggiorna  la data di scadenza della password nel campo 
sambaPwdMustChange; ebbene quest'ultima operazione non viene eseguita ed 
il valore del campo rimane lo stesso che c'era prima del cambio password.

Da quel che mi risulta i campi che dovrebbero essere aggiornati sono i 
seguenti:

sambaPasswordHistory:
sambaLMPassword:
sambaNTPassword:
sambaPwdLastSet:
sambaPwdMustChange:
userPassword:

Ma purtroppo "sambaPwdMustChange:" non subisce variazioni, mentre tutti 
gli altri si.

Questa è la configurazione del mio server LDAP:
-------------------------------------------------
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/samba.schema
include /etc/openldap/schema/local.schema
pidfile         /var/run/slapd/slapd.pid
argsfile        /var/run/slapd/slapd.args
allow bind_v2
access to 
attrs=userPassword,sambaLMPassword,sambaNTPassword,sambaPwdLastSet,sambaPwdMustChange,shadowLastChange,sambaPasswordHistory
      by self write
      by anonymous auth
      by * none
access to *
      by * read
database        ldbm
suffix          "dc=XX,dc=XX"
rootdn          "cn=Manager,dc=XX,dc=XX"
rootpw          XXXXXXXXXXXXXXXXX
directory       /var/lib/ldap
# Indices to maintain
index objectClass           eq
index cn                    pres,sub,eq
index sn                    pres,sub,eq
index uid                   pres,sub,eq
index displayName           pres,sub,eq
index uidNumber             eq
index gidNumber             eq
index memberUID             eq
index sambaSID              eq
index sambaPrimaryGroupSID  eq
index sambaDomainName       eq
index default               sub
-------------------------------------------------

Per la cronaca ho provato ad usare come access-list anche la seguente 
entry: access to * by * write , per escludere complicazioni dovute a 
permessi di accesso.
Questa è la configurazione del mio PDC Samba:
----------------------------------------------------
[global]
    workgroup = XXXXXX
    netbios name = XXXXXXXX
    server string = Samba Server PDC
    passdb backend = ldapsam:"ldap://<IP-SERVER-LDAP"
    passwd program = /usr/sbin/smbldap-passwd %u
    passwd chat = *Nuova*Password* %n\n *Riscrivi*Nuova*Password* %n\n 
*all*authentication*tokens*
    smb ports = 139
    encrypt passwords = Yes
    update encrypted =Yes
    max log size = 0
    add user script = /usr/sbin/smbldap-useradd -m "%u"
    delete user script = /usr/sbin/smbldap-userdel "%u"
    add group script = /usr/sbin/smbldap-groupadd -p "%g"
    delete group script = /usr/sbin/smbldap-groupdel "%g"
    add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
    delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
    set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
    add machine script = /usr/sbin/smbldap-useradd -w "%u"
    rename user script = /usr/sbin/smbldap-usermod -r '%unew' '%uold'
    domain logons = Yes
    os level = 255
    preferred master = Yes
    domain master = Yes
    dns proxy = No
    wins support = Yes
    security = user
    ldap ssl = no
    ldap admin dn = cn=Manager,dc=XX,dc=XX
    ldap delete dn = Yes
    ldap group suffix = ou=Groups
    ldap idmap suffix = ou=Idmap
    ldap machine suffix = ou=Computers
    ldap passwd sync = Yes
    ldap suffix = dc=XX,dc=XX
    ldap user suffix = ou=Users
    logon home =
    logon path =
[netlogon]
    path = /etc/samba/netlogon
    create mask = 0700
    security mask = 0700
    directory mask = 0700
    directory security mask = 0700
    guest ok = yes
    browseable = no
-----------------------------------------------------

Da quello che ho potuto vedere sembra che il cambio password di windows, 
utilizzi "smbpasswd" invece di usare "smbldap-passwd". E' possibile una 
cosa del genere?  Come si risolve questo problema?
In attesa di un vostro riscontro porgo cordiali saluti.

         Silvio Fabi

-- 
Silvio Fabi - NBS srl 
Area Sistemi
tel. 0735/7626242
mail: s.fabi at nbsgroup.it




More information about the samba-it mailing list