Este programa verifica a senha do usu�rio em sistemas com shadow password:

#include <stdio.h>
#include <stdlib.h>
#include <pwd.h>
#include <shadow.h>
#include <sys/types.h>
int login( char *user, char *passwd )
{
struct spwd *s_pwd;
struct passwd *n_pwd;
n_pwd = getpwnam ((const char *)user);
s_pwd = getspnam ( n_pwd->pw_name );
if( (n_pwd == NULL) || (s_pwd == NULL) )
return 0;
if (strcmp( s_pwd->sp_pwdp, (char *) crypt(passwd, s_pwd->sp_pwdp)) )
return 0;
return 1;
}
int main( int argc, char *argv[] )
{
if ( login( argv[1], argv[2] ) )
{
printf( "%s\n", "+OK" );
}
else
{
printf( "%s\n", "-ERR" );
}
}


Espero que ajude
Marcus.

---------------------------------------------------------------------------
Esta lista � patrocinada pela Conectiva S.A. Visite http://www.conectiva.com.br

Arquivo: http://bazar2.conectiva.com.br/mailman/listinfo/linux-br
Regras de utiliza��o da lista: http://linux-br.conectiva.com.br
FAQ: http://www.zago.eti.br/menu.html

Responder a