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


  Unix入门
  Unix Shell编程
  高级Unix
  Unix有用参考
  Unix有用资源
  精选阅读

版权所有 © 2014 tutorialspoint



  首页     参考资料     讨论区     关于TP  

seteuid() - Unix,Linux系统调用


previous next AddThis Social Bookmark Button

广告

名称

seteuid, setegid - 设置有效用户或组ID

概要

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

int seteuid(uid_t euid);
int setegid(gid_t egid);

描述

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

对于setegid(),将“用户”替换为“组”,则同样适用。

返回值

成功时,返回零。出错时,返回 -1,并适当地设置errno

错误

标签描述
EPERM 当前进程没有特权(Linux:在seteuid()的情况下没有CAP_SETUID能力,在setegid()的情况下没有CAP_SETGID能力),并且euid(或egid)不是真实用户(组)ID、有效用户(组)ID或已保存的set-user-ID(已保存的set-group-ID)。

备注

从Linux 1.1.37(1.1.38)开始,可以将有效用户(组)ID设置为已保存的set-user-ID(已保存的set-group-ID)。在任意系统上,都应该检查_POSIX_SAVED_IDS。

在libc4、libc5和glibc2.0中,seteuid(euid)等效于setreuid(-1, euid),因此可能会更改已保存的set-user-ID。在glibc2.1中,它等效于setresuid(-1, euid,-1),因此不会更改已保存的set-user-ID。类似的说明也适用于setegid()。

符合标准

4.3BSD,POSIX.1-2001。

参见



previous next Printer Friendly

广告


  

广告



广告