Zimbra jelszó policy [MEGOLDVA]

Zimbrában kellene beállítanom, jelszó lejáratási policy -t. Ebben semmi különös nincs, van is ilyen feature, ennek a beállításával semmi gond.
Amivel viszont van, az az, hogy hogyan értesül erről a felhasználó. Az én logikám szerint, a lejárat előtti 15,10,5,4,3,2,1 nappon, kapjon egy emailt, a lejárat időpontjáról és egy linket, leírást arról, hol, hogyan tudja megváltoztatni a régi jelszavát.
Na ezt a feature -t kifelejtették ebből a csúcs csoda rendszerből.

Az a kérdésem, van-e itt valakinek ilyen scriptje készen, vagy más megoldása.

Hozzászólások

Hát jó ha senki akkor itt van:


#!/bin/bash

LDAPSEARCH="/opt/zimbra/openldap-2.6.99.9z/bin/ldapsearch"
LDAPHOST="ldap://192.168.0.200:389"
BINDDN="uid=zimbra,cn=admins,cn=zimbra"
BINDPW="******"
BASEDNCONF="cn=default,cn=cos,cn=zimbra"
BASEDNUSR="ou=people,dc=bigfhart,dc=com"

PDATE=`date +%Y%m%d`

function sendalert() {

echo "Tisztelt Holgyem / Uram!

Az On levelezeshez hasznalt jelszava (e-mail jelszo) $2 nap utan
lejar.

Kerem latogassa meg a http://mail..../ oldalt, ahol a jelszavat
megvaltoztathatja

Support team
Levelezes adminisztracio" | mailx -s "Emlekezteto jelszo lejaratarol" "$1"

}

# ez csak az alibi kedveert
function lastalert() {

echo "Tisztelt Holgyem / Uram!

Az On levelezeshez hasznalt jelszava (e-mail jelszo) $2 napjan
lejart

A jelszot azonban megvaltoztathatja a http://mail..../
login kepernyojen

Support team
Levelezes adminisztracio" | mailx -s "Emlekezteto jelszo lejaratarol" "$1"
}

# Kilistazom az osszes accountot
${LDAPSEARCH} -LLL -H ${LDAPHOST} -D ${BINDDN} -w${BINDPW} -b ${BASEDNUSR} "(zimbraMailStatus=enabled)" "uid" | sed '/^dn/d;/^$/d' | cut -f2 -d " " | while read account
	do
	# A jelszo maximalis ervennessegi hossza
	USER_PW_MAX_AGE=`${LDAPSEARCH} -LLL -H ${LDAPHOST} -D ${BINDDN} -w${BINDPW} -b ${BASEDNUSR} "(uid=${account})" "zimbraPasswordMaxAge" | sed '/^dn/d;/^$/d' | cut -f2 -d " "`

	# Ha nincs a userhez beallitva a globalis beallitast hasznalom
	if [ "${USER_PW_MAX_AGE}" == "" ]; then
		# A kiolvasom a globalis beallitast
		USER_PW_MAX_AGE=`${LDAPSEARCH} -LLL -H ${LDAPHOST} -D ${BINDDN} -w${BINDPW} -b ${BASEDNCONF} "(objectClass=*)" "zimbraPasswordMaxAge" | sed '/^dn/d;/^$/d' | cut -f2 -d " "`
		if [ "${USER_PW_MAX_AGE}" == "0" ]; then
			USER_PW_MAX_AGE=730
		fi
	fi

	# Kinyerem az utolso jelszo modositas datumat, csak ev honap napot
	USER_PW_LAST_CHANGE=`${LDAPSEARCH} -LLL -H ${LDAPHOST} -D ${BINDDN} -w${BINDPW} -b ${BASEDNUSR} "(uid=${account})" "zimbraPasswordModifiedTime" |\
                             sed '/^dn/d;/^$/d' | cut -f2 -d " " | sed -e 's/^\([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\).*$/\1/'`

	if [ `date +%Y%m%d -d "${USER_PW_LAST_CHANGE} ${PW_CHECK_AGE} days"` -lt $PDATE ]; then
		lastalert ${account} `date +%Y.%m.%d -d "${USER_PW_LAST_CHANGE} ${PW_CHECK_AGE} days"`
	fi

	for d in 15 10 5 4 3 2 1
		do
			PW_CHECK_AGE=$[$USER_PW_MAX_AGE-$d]
			MAILDATE=`date +%Y%m%d -d "${USER_PW_LAST_CHANGE} ${PW_CHECK_AGE} days"`
			if [ "${PDATE}" == "${MAILDATE}" ]; then
				sendalert ${account} $d
			fi
		done
	done

"Kicsit sárga, kicsit savanyú, de a miénk!"

----
올드보이
http://molnaristvan.eu/