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

廣告


  

廣告



廣告
© . All rights reserved.