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

广告


  

广告



广告