用户信息对于服务器程序的安全性来说是很重要,比如大部分服务器就必须以root身份启动,但不能以root身份运行。
一、UID、EUID、GID、EGID
下面这一组函数可以获取和设置当前进程的真实用户ID(UID)、有效用户ID(EUID)、真实组ID(GID)和有效组ID(EGID):
#include <sys/types.h>
#include <unistd.h>
uid_t getuid(); /* 获取真实用户ID */
uid_t geteuid() /* 获取有效用户ID */
gid_t getgid(); /* 获取真实组ID */
gid_t getegid(); /* 获取有效组ID */
int setuid(uid_t uid); /* 设置真实用户ID */
int seteuid(uid_t uid); /* 设置有效用户ID */
int setgid(gid_t gid); /* 设置真实组ID */
int setegid(gid t gid); /* 设置有效组ID */