setuid()
setuid是一個函式。setuid函式設定實際使用者ID和有效使用者ID。
- 外文名
- setuid
- 標頭檔案
- #include<unistd.h>
- 函式原型
- int setuid(uid_t uid);
- 類 別
- 函式
說明
編輯setuid函式設定實際使用者ID和有效使用者ID。Linux的setuid函式和Unix中的setuid函式的行為是不同的。在Linux中, setuid(uid)函式的執行步驟為:(1)如果由普通使用者呼叫,將當前程式的有效ID設定為uid. (2)如果由有效使用者ID符為0的程式呼叫,則將真實,有效和已儲存使用者ID都設定為uid.
在Unix中.setuid(uid)函式的行為為: (1)如果程式沒有超級使用者特權,且uid等於實際使用者ID或已儲存使用者ID,則將有效的使用者ID設定為uid.否則返回錯誤.(2)如果程式是有超級使用者特權,則將真實、有效和已儲存使用者表示符都設定為uid.如果兩個條件都不滿足,則設定errno為EPERM。
函式在執行成功的時候返回0,在出錯的時候返回-1.
範例
編輯#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
if(!setuid(1234)){
printf("setuid successfully!\n");
}else{
printf("setuid error!");
perror("setuid");
}
return 0;
}
相關文章
- ERROR: NMO not setuid-rootErrorUI
- setuid-setgid-sticky-bitUI
- setuid()與seteuid()的區別UI
- ERROR: NMO not setuid-root (Unix-only)ErrorUI
- setuid()與setgid() -- 設定 UID 和 GIDUI
- 解決pgpool啟動報錯 ifup[/sbin/ip] doesn't have setuid bitUI
- Connection to host as user root failed.ERROR: NMO not setuid-root (Unix-only)AIErrorUI
- ORACLE OCM備考OEM搭建DG報錯:NMO not setuid-root(Unix-only)OracleUI