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 或已保存的设置用户 ID。

对于setegid(),情况完全相同,只是将“用户”替换为“组”。

返回值

成功时,返回 0。失败时,返回 -1,并且 errno 被相应地设置。

错误

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

备注

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

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

符合标准

4.3BSD、POSIX.1-2001。

参见



previous next Printer Friendly

广告


  

广告



广告
© . All rights reserved.