创建个user.c文件
#include <sys/types.h>
#include <pwd.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main(){
uid_t uid;
gid_t gid;
struct passwd *pw;
uid = getuid();
gid = getgid();
printf("User is %s\n",getlogin());//获取登陆用户名
printf("User IDs: uid=%s, gid=%s\n",uid,gid); //获取uid和gid
pw = getpwuid(uid); //通过uid获取passwd结构的成员信息
printf("UID passwd entry:\n name=%s, uid=%d, gid=%d, dir=%s, \
gecos=%s, shell=%s\n",
pw->pw_name,pw->pw_uid,pw->pw_gid,pw->pw_dir,pw->pw_gecos,
pw->pw_shell );
pw = getpwnam("oprofile"); //获取oprofile用户的passwd结构的成员信息
printf("root passwd entry:\n");
printf("UID passwd entry:\n name=%s, uid=%d, gid=%d, dir=%s, \
gecos=%s, shell=%s\n",
pw->pw_name,pw->pw_uid,pw->pw_gid,pw->pw_dir,pw->pw_gecos,
pw->pw_shell );
return 0;
}
gcc user.c -o user
id命令查看用户信息
[root@localhost user]# id
uid=0(root) gid=0(root) 组=0(root)
[root@localhost user]# id root
uid=0(root) gid=0(root) 组=0(root)
[root@localhost user]# id oprofile
uid=1002(oprofile) gid=1002(oprofile) 组=1002(oprofile)