2011/5/9 Ferran <fer...@fompi.net>: > On 05/09/11 10:43, muzzol wrote: >> tens els atributs shadow als usuaris? > > És això, oi? ;) > > shadowExpire: -1 > shadowInactive: -1 > shadowLastChange: -1 > shadowMax: -1 > shadowMin: -1 > shadowWarning: -1 >
si > (els -1 els he possat manualment per no-expirartzar l'account) > No se si algún dels altres objects fan mal... > > objectClass: sambaSamAccount > objectClass: shadowAccount > objectClass: posixAccount > objectClass: inetOrgPerson > objectClass: MailAccount > mal no fan :) >> hi ha vàries implementacions de polítiques de password amb LDAP. > > Alguna bona referència? Tot el que he vist està molt dispersat, o són > únicament descripcions dels objectes i grups de tal especificació ldap. > struct spwd { char *sp_namp; /* user login name */ uid char *sp_pwdp; /* encrypted password */ userpassword long sp_lstchg; /* last password change */ shadowLastChange int sp_min; /* days until change allowed. */ shadowMin int sp_max; /* days before change required */ shadowMax int sp_warn; /* days warning for expiration */ shadowWarning int sp_inact; /* days before account inactive */ shadowInactive int sp_expire; /* date when account expires */ shadowExpire int sp_flag; /* reserved for future use */ shadowFlag } El significat: The meanings of each field are: · sp_namp - pointer to null-terminated user name · sp_pwdp - pointer to null-terminated password · sp_lstchg - days since Jan 1, 1970 password was last changed · sp_min - days before which password may not be changed · sp_max - days after which password must be changed · sp_warn - days before password is to expire that user is warned of pending password expiration · sp_inact - days after password expires that account is considered inactive and disabled · sp_expire - days since Jan 1, 1970 when account will be disabled · sp_flag - reserved for future use i el RHDS (389 DS) també implementa aquesta: http://directory.fedoraproject.org/wiki/Account_Policy_Design jo la vaig provar i vaig tenir problemes de compatibilitat, així que me vaig quedar amb els atributs shadow, que tot i ser una mica limitats són més estàndard. vaig fer un script per comprovar l'estat del compte: ############################################################################# #!/bin/bash USUARI="$1" [ -z "$USUARI" ] && echo "ERROR: has d'especificar un usuari" && exit 1 BASE_USUARIS="ou=Users,dc=exemple.com,dc=global" # cercam el valor del darrer canvi de pass de l'usuari especificat. # el valor de retorn és el número de dies des de l'1 de gener del 1970 SHADOWLASTCHANGE=`ldapsearch -x -LLL -b "$BASE_USUARIS" "(uid=$USUARI)" shadowLastChange | grep "^shadowLastChange: " | cut -d" " -f2-` # valors fixos de proves # SHADOWLASTCHANGE="14763" # SHADOWLASTCHANGE="15000" # SHADOWLASTCHANGE="14993" # SHADOWLASTCHANGE="14990" # si no trobam el valor tornam un error i informam als administradors :P if [ -z "$SHADOWLASTCHANGE" ]; then echo "ERROR: No s'ha trobat l'usuari $USUARI" exit 1 fi # cercam els valors de les polítiques de l'usuari SHADOWMAX=`ldapsearch -x -LLL -b "$BASE_USUARIS" "(uid=$USUARI)" shadowmax | grep "^shadowmax: " | cut -d" " -f2-` SHADOWWARNING=`ldapsearch -x -LLL -b "$BASE_USUARIS" "(uid=$USUARI)" shadowwarning | grep "^shadowwarning: " | cut -d" " -f2-` SHADOWINACTIVE=`ldapsearch -x -LLL -b "$BASE_USUARIS" "(uid=$USUARI)" shadowinactive | grep "^shadowinactive: " | cut -d" " -f2-` # echo "DEBUG SHADOW: SHADOWMAX [$SHADOWMAX] SHADOWWARNING [$SHADOWWARNING] SHADOWINACTIVE [$SHADOWINACTIVE]" # si falta algun d'aquests valors tornam un error i avisam als administradors if [ -z "$SHADOWMAX" ] || [ -z "$SHADOWINACTIVE" ] || [ -z "$SHADOWWARNING" ]; then echo "falta valor SHADOWINACTIVE" exit 0 fi # càlculs # segons diaris = 86400 # segons unix = date +%s # avaluam el dia actual en format unix SEGONSUNIX=`date +%s` DIESACTUAL=`expr $SEGONSUNIX / 86400` # dies que fa que ha canviat el pass VIGENCIA=`expr $DIESACTUAL - $SHADOWLASTCHANGE` # periode correcte de l'usuari (no esta ni expirat ni en gracia) PERIODEACTIU=`expr $SHADOWMAX - $SHADOWWARNING` echo "DEBUG: SHADOWLASTCHANGE [$SHADOWLASTCHANGE] VIGENCIA [$VIGENCIA] PERIODEACTIU [$PERIODEACTIU] DIESACTUAL [$DIESACTUAL]" # comprovacions del password ############################ if [ "$VIGENCIA" -gt "$SHADOWINACTIVE" ]; then # no se deixa entrar a l'usuari ESTAT="INACTIU" elif [ "$VIGENCIA" -gt "$SHADOWMAX" ]; then # ser força el canvi de pass i no se deixa entrar l'usuari ESTAT="EXPIRAT" elif [ "$VIGENCIA" -gt "$PERIODEACTIU" ]; then # se suggereix el canvi de pass i se deixa entrar l'usuari ESTAT="GRACIA" else # tot OK, se deixa entrar l'usuari ESTAT="ACTIU" fi echo "ESTAT: $ESTAT" ############################################################################# has de jugar amb el valor shadowLastChange de l'usuari. amb el phpldapadmin ja t'apareix directament un calendari quan modifiques aquest valor. > El pam.d/chage és: > > auth include system-auth > account include system-auth > password include system-auth > > (l'he copiat vilment del passwd) > > system-auth is: > > auth required pam_env.so > auth sufficient pam_unix.so try_first_pass likeauth nullok > auth sufficient pam_ldap.so use_first_pass > auth required pam_deny.so > > account sufficient pam_ldap.so > account required pam_unix.so > > password required pam_cracklib.so difok=2 minlen=8 dcredit=2 > ocredit=2 try_first_pass retry=3 > password sufficient pam_unix.so try_first_pass use_authtok nullok > ssha md5 shadow > password sufficient pam_ldap.so use_authtok use_first_pass > password required pam_deny.so > > session required pam_limits.so > session required pam_unix.so > session optional pam_ldap.so > no veig res estrany aquí, però fent una petita cerca no estic segur que el chage pugui xerrar amb LDAP, igual te podries fer tu mateix un script que modifiqui els paràmetres del LDAP. o prova de jugar amb els valors shadow a veure si canvia res. fins ara, muzzol -- ======================== ^ ^ O O (_ _) muzzol(a)muzzol.com ======================== jabber id: muzzol(a)jabber.dk ======================== No atribueixis qualitats humanes als ordinadors. No els hi agrada. ======================== "El gobierno español sólo habla con terroristas, homosexuales y catalanes, a ver cuando se decide a hablar con gente normal" Jiménez Losantos ======================== -- _______________________________________________ Comandob mailing list Comandob@badopi.org http://lists.badopi.org/mailman/listinfo/comandob