This item was added on: 2003/03/07
How do I get my UID?
How do I get the user's login name?
How do I get user information from /etc/passwd
without parsing?
How do I test a plain text password against an /etc/passwd entry?
How do I get my UID?
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
uid_t u = getuid();
printf("Real UID: %u\n", u);
u = geteuid();
printf("Effective UID: %u\n", u);
How do I get the user's login name?
#include <unistd.h>
#include <stdio.h>
char *p = getlogin();
if( p )
{
printf( "Hello %s\n", p );
}
How do I get user information from /etc/passwd
without parsing?
#include <sys/types.h>
#include <pwd.h>
struct passwd *p;
p = getpwnam( getlogin() );
p = getpwuid( getuid() );
How do I test a plain text password against an /etc/passwd
entry?
#include <sys/types.h>
#include <pwd.h>
#include <unistd.h>
#include <stdio.h>
struct passwd *p;
p = getpwnam( "username" );
if (p)
{
if( strcmp( crypt( "Password", p->pw_passwd ), p->pw_passwd ) == 0 )
{
puts( "match" );
}
else
{
puts( "no match" );
}
}
Credit: vVv