本代码利用C语言编写
#include<pwd.h>
#include<sys/types.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=%d,gid=%d\n",uid,gid);
pw=getpwuid(uid);
printf("UID passwd entry:\n name=%s,uid=%d,gid=%d,home=%s,shell=%s\n",pw->pw_name,pw->pw_uid,pw->pw_gid,pw->pw_dir,pw->pw_shell);
pw=getpwnam("root");
printf("root passwd entry:\n name=%s,uid=%d,gid=%d,home=%s,shell=%s\n",pw->pw_name,pw->pw_uid,pw->pw_gid,pw->pw_dir,pw->pw_shell);
exit(0);
}
在本代码中共使用了两个系统函数,分别为getpwuid(uid)和getpwnam(“root”),两个函数的区别在与参数不同,一个是用户标识符,另一个是用户名。
执行结果如下图:
注意:在不同的系统中执行结果可能不同。