//切换用户
static bool switch_to_user(uid_t user_id,gid_t gp_id)
{
//确定是不是root用户
if((user_id==0)&&(gp_id==0))
return false;
//确保当前用户合法的用户
gid_t gid = getgid();
uid_t uid = getuid();
if(((gid!=0)||(uid!=0))&&((gid!=gp_id)||(uid!=user_id)))
return false;
//如果不是root则已经是目标用户
if(uid!=0)
return true;
//切换到目标用户
if((setgid(gp_id)<0)||(setuid(user_id)<0))
return false;
return true;
}
Linux 将以root身份启动的进程切换为以一个普通用户身份运行 (C)
最新推荐文章于 2024-07-25 20:23:43 发布