setreuid() - Unix,Linux 系统调用
Tutorials Point


  Unix 初学者指南
  Unix Shell 编程
  高级 Unix
  Unix 有用参考
  Unix 有用资源
  精选阅读

版权所有 © 2014 tutorialspoint



  首页     参考     讨论论坛     关于TP  

setreuid() - Unix,Linux 系统调用


previous next AddThis Social Bookmark Button

广告

名称

setreuid, setregid - 设置真实和/或有效用户或组 ID

语法

#include <sys/types.h>
#include <unistd.h>

int setreuid(uid_t ruid, uid_t euid);
int setregid(gid_t rgid, gid_t egid);

描述

setreuid() 设置当前进程的真实和有效用户 ID。

为真实或有效用户 ID 提供 -1 的值会强制系统保持该 ID 不变。

非特权进程只能将其有效用户 ID 设置为真实用户 ID、有效用户 ID 或已保存的 set-user-ID。

POSIX:非特权进程是否可以将其真实用户 ID 设置为真实用户 ID、有效用户 ID 或已保存的 set-user-ID 未作规定。

Linux:非特权用户只能将其真实用户 ID 设置为真实用户 ID 或有效用户 ID。

Linux:如果设置了真实用户 ID 或将有效用户 ID 设置为与先前真实用户 ID 不相等的值,则已保存的 set-user-ID 将设置为新的有效用户 ID。

完全类似地,setregid() 设置当前进程的真实和有效组 ID,并且上述所有内容都适用于“组”而不是“用户”。

返回值

成功时,返回零。发生错误时,返回 -1,并且 errno 被相应地设置。

错误

标签描述
EPERM 当前进程没有特权(Linux:在 setreuid() 的情况下没有 CAP_SETUID 功能,或者在 setregid() 的情况下没有 CAP_SETGID 功能),并且指定了除(i)交换有效用户(组)ID 与真实用户(组)ID,或(ii)将其中一个设置为另一个的值,或(iii)将有效用户(组)ID 设置为已保存的 set-user-ID(已保存的 set-group-ID)的值之外的更改。

注释

从 Linux 1.1.37(1.1.38)开始,可以将有效用户(组)ID 设置为已保存的 set-user-ID(已保存的 set-group-ID)。

符合标准

POSIX.1-2001、4.3BSD(setreuid() 和 setregid() 函数调用首次出现在 4.2BSD 中)。

参见



previous next Printer Friendly

广告


  

广告



广告