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.