Re: FreeBSD auth

2005-11-03 Thread Dan Toganel

--- Igor Robul [EMAIL PROTECTED] wrote:

 It is not recommended directly use /etc/passwd, you
 your program need 
 authentification, then use
 PAM (man 3 pam). If you still want ignore PAM, you
 can use getpwent(3) 
 family of functions.

Thanks for your interest.
Well, the problem with getpwent() is that i can't 
retrive hash from master.passwd, 
I can use it, only to parse passwd file.
But i also need to parse master.passwd to obtain 
the hash and to crypt user password and obtain 
the hash.
I need more specific help about those two.
 




__ 
Yahoo! Mail - PC Magazine Editors' Choice 2005 
http://mail.yahoo.com
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: FreeBSD auth

2005-11-03 Thread Lowell Gilbert
Dan Toganel [EMAIL PROTECTED] writes:

 --- Igor Robul [EMAIL PROTECTED] wrote:
 
  It is not recommended directly use /etc/passwd, you
  your program need 
  authentification, then use
  PAM (man 3 pam). If you still want ignore PAM, you
  can use getpwent(3) 
  family of functions.
 
 Thanks for your interest.
 Well, the problem with getpwent() is that i can't 
 retrive hash from master.passwd, 
 I can use it, only to parse passwd file.
 But i also need to parse master.passwd to obtain 
 the hash and to crypt user password and obtain 
 the hash.
 I need more specific help about those two.

getpwent() *does* give you the encrypted password.
It's the second field in the structure passed back.
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: FreeBSD auth

2005-11-03 Thread Dan Toganel
--- Lowell Gilbert
[EMAIL PROTECTED] wrote:
 getpwent() *does* give you the encrypted password.
 It's the second field in the structure passed back.
 
Well, i did:

includesys/types.h
#includepwd.h

extern int errno;

int main()
{
char *name=dan;
struct passwd *password;
int uid;

password=getpwnam(name);

if(!password)
{
perror(getpwnam failed);
exit(1);
}

uid=password-pw_uid;

printf(Uid: %d, passwd:
%s\n,uid,password-pw_passwd);

exit(0);
}
.
bash-2.05b$ ./a.out
Uid: 1001, passwd: *

I get passwd field from /etc/passwd.which
is '*' for every user, not the hash 
from /etc/master.passwd.

Where am i wrong?




__ 
Start your day with Yahoo! - Make it your home page! 
http://www.yahoo.com/r/hs
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: FreeBSD auth

2005-11-03 Thread Igor Robul

Dan Toganel wrote:


--- Lowell Gilbert
[EMAIL PROTECTED] wrote:
 


getpwent() *does* give you the encrypted password.
It's the second field in the structure passed back.

   


Well, i did:

includesys/types.h
#includepwd.h

extern int errno;

int main()
{
char *name=dan;
struct passwd *password;
int uid;

password=getpwnam(name);

if(!password)
   {
   perror(getpwnam failed);
   exit(1);
   }

uid=password-pw_uid;

printf(Uid: %d, passwd:
%s\n,uid,password-pw_passwd);

exit(0);
}
.
bash-2.05b$ ./a.out
Uid: 1001, passwd: *

I get passwd field from /etc/passwd.which
is '*' for every user, not the hash 
from /etc/master.passwd.


Where am i wrong?
 


Maybe you are not root :-) ?

%./a.out
Uid: 1001, passwd: *
%sudo ./a.out
Password:
Uid: 1001, passwd: $1$SO.nZTlP$n.HhobnlE.J45gncea5uD/


___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: [solved] FreeBSD auth

2005-11-03 Thread Dan Toganel
Sorry,me stupid.
Of course, i wasn't root.
Thanks for help.





__ 
Yahoo! Mail - PC Magazine Editors' Choice 2005 
http://mail.yahoo.com
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


FreeBSD auth

2005-11-02 Thread Dan Toganel
Hello list, 
I'm a newbie in freebsd programming and i need some
docs  hints in order to port a program from linux to
FreeBSD.

The piece of code is:
..
struct spwd* shadow=getspnam(name);
if(!shadow)
{
.
}
char *key=crypt(passwd,shadow-sp_pwdp);
if(!key)
{

}
if(strncmp(shadow-sp_pwdp,key,strlen(shadow-sp_pwdp))==0)
{
/*login success*/
}
else
{
/*login failed*/
}

I realize that in FreeBSD master.passwd is the
replacement for linux shadow file.
Is there a function to parse it?
And how can i obtain the hash string?
Thanks in advance for any help.





__ 
Yahoo! Mail - PC Magazine Editors' Choice 2005 
http://mail.yahoo.com
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: FreeBSD auth

2005-11-02 Thread Igor Robul

Dan Toganel wrote:



I realize that in FreeBSD master.passwd is the
replacement for linux shadow file.
Is there a function to parse it?
And how can i obtain the hash string?
Thanks in advance for any help.
 

It is not recommended directly use /etc/passwd, you your program need 
authentification, then use
PAM (man 3 pam). If you still want ignore PAM, you can use getpwent(3) 
family of functions.

___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]