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

廣告


  

廣告



廣告