#include<unistd.h>
uid_t getuid(void);
uid_t geteuid(void);
gid_t getgid(void);
gid_t getegid(void);
int setuid(uid_t uid);
int setgid(gid_t gid);
int seteuid(uid_t euid);
int setegid(gid_t egid);
int setreuid(uid_t ruid,uid_t euid);
int setregid(gid_t rgid,gid_t egid);
int getresuid(uid_t *ruid,uid_t *euid,uid_t *suid);
int getresgid(gid_t *rgid,gid_t *egid,gid_t *sgid);
int setresuid(uid_t ruid,uid_t euid,uid_t suid);
int setresgid(gid_t rgid,gid_t egid,gid_t sgid);
调用成功返回0,失败返回-1,另外如果用户id和组id都修改,那么应该先写组id函数,如果组id函数写在后面,那么该组函数失败
#include<sys/fsuid.h>
int setfsuid(uid_t fsuid);
int setfsgid(gid_t fsgid);
int getgroups(int gidsetsize,gid_t grouplist[]);
![这里写图片描述](https://img-blog.csdn.net/20170527181007510?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzQ4Mjk5NTM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)