00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "defs.h"
00022 #include <pwd.h>
00023 #include <grp.h>
00024
00025
00026 int main(void)
00027 {
00028 uid_t uid;
00029 gid_t gid;
00030 struct passwd *pwd;
00031 struct group *grp;
00032
00033 uid = getuid();
00034 ec_null( pwd = getpwuid(uid) )
00035 printf("Real user = %ld (%s)\n", (long)uid, pwd->pw_name);
00036
00037 uid = geteuid();
00038 ec_null( pwd = getpwuid(uid) )
00039 printf("Effective user = %ld (%s)\n", (long)uid, pwd->pw_name);
00040
00041 gid = getgid();
00042 ec_null( grp = getgrgid(gid) )
00043 printf("Real group = %ld (%s)\n", (long)gid, grp->gr_name);
00044
00045 gid = getegid();
00046 ec_null( grp = getgrgid(gid) )
00047 printf("Effective group = %ld (%s)\n", (long)gid, grp->gr_name);
00048
00049 exit(EXIT_SUCCESS);
00050
00051 EC_CLEANUP_BGN
00052 exit(EXIT_FAILURE);
00053 EC_CLEANUP_END
00054 }
00055