Skip to Content
LINUX系統程式設計 第二版
book

LINUX系統程式設計 第二版

by Robert Love
December 2013
Intermediate to advanced
496 pages
8h 57m
Chinese
GoTop Information, Inc.
Content preview from LINUX系統程式設計 第二版
行程管理
|
177
int seteuid (uid_t euid);
int setegid (gid_t egid);
seteuid()
可用於把有效用戶識別碼的值設定成
euid
root 用戶可以替
euid
提供任何值。
root 用戶只能把有效用戶識別碼的值設定成真實的或暫存的用戶識別碼。執行成功時,
seteuid()
會傳回
0
。執行失敗時,則會傳回
-1
並把
errno
設定成
EPERM
,這表示當前行
程的擁有者並非 root,而且
euid
既不等於真實用戶識別碼也不等於暫存用戶識別碼。
請注意,在用戶不是 root 的狀況下,
seteuid()
的行為如同
setuid()
。因此標準的做法
以及比較好的主意總是使用
seteuid()
,除非你的行程企圖以 root 的身份執行,此時使
setuid()
會比較有意義。
前面的討論同樣適用於群組—僅需要把
seteuid()
代換成
setegid()
,以及把
euid
代換成
egid
BSD 的手法變更用戶與群組識別碼
BSD 針對用戶與群組識別碼的設定提供了它自己的介面。基於相容性,Linux 也提供了
這些介面:
#include <sys/types.h>
#include <unistd.h>
int setreuid (uid_t ruid, uid_t euid);
int setregid (gid_t rgid, gid_t egid);
setreuid()
可用於把一個行程之真實及有效的用戶識別碼分別設定成
ruid
euid
。若把
任何參數值設定成 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

優雅的SciPy|Python科學研究的美學

優雅的SciPy|Python科學研究的美學

Juan Nunez-Iglesias, Stéfan van der Walt, Harriet Dashnow
C++语言导学(原书第2版)

C++语言导学(原书第2版)

本贾尼 斯特劳斯特鲁普

Publisher Resources

ISBN: 9789862769812