when the script runs it make a new file then copies it to the Shadow file then chowns it
(taken from changepassword.c)
if (chown(SHADOW_FILE,0,0)<0) {
printf("<font face=\"%s\" color=\"%s\" size=\"%i\">%s<br>%s<br><br>%s<br><br>%s</font>",FONTFACE,MSGSCOLOR,FONTSIZE,msg18,msg15,msg19,msg08);
clean_up(1);
this stops freeradius... and maybe other porgs ... from reading it correctly ....
when you "ls -l" the shadow file before and after you get
before -rw-r----- 1 root shadow 909 2007-09-10 11:05
after -rw-r----- 1 root root 909 2007-09-10 11:05
the group is not changed back to the correct group...
to correct it i changed (in passwordchange.c) before doing a ./configure
if (chown(SHADOW_FILE,0,0)<0) {
to
if (chown(SHADOW_FILE,0,42)<0) {
I dont know if the the shadow group has a default id of 42 but that is how it is on all of my ubuntu boxs.