In article <200111291526.fATFQ5323283 / moulon.inra.fr>, "ts" <decoux / moulon.inra.fr> wrote: > ruby must give an error message in this case > > pigeon% ruby -e 'Etc.getpwnam("ts")' > -e:1: uninitialized constant Etc (NameError) pigeon% Yes. I get that error message. Let me try my original code again ... Well, I can't explain why, but it just hangs. I'll have a play and see if I can work out why I don't just get the same error message in this case. It's bound to be something I'm just not seeing! > Try this program and see if it hung > > pigeon% cat a.c > #include <stdio.h> > #include <pwd.h> > #include <sys/types.h> > > main() > { > struct passwd *pwd = getpwnam("harryo/xyz"); if (pwd != NULL) > printf("%s\n", pwd->pw_name); > } It doesn't hang; getpwnam() just returns NULL. > pigeon% > > then try it with a valid uid .... and it works fine with a valid UID. > H> The passwd field in the object it returns contains "x", which is > what's H> in /etc/passwd to indicate that the password can be found in > /etc/shadow. > > H> Maybe the code needs to be changed to understand shadow password > files. > > why ? you want to try to crack the passwords ? :-))))) No ... trust me :-). I'm writing a web based program and I want to use the normal user names and passwords for validation purposes. I can encrypt the password, but I need to have something to compare it against. Maybe there's another way to it that I'm unaware of. Any suggestions?