版權所有 © 2014 tutorialspoint
int setuid(uid_t uid);
在Linux下,setuid() 的實現方式與具有_POSIX_SAVED_IDS 特性的POSIX版本相同。這允許set-user-ID(非root)程式放棄所有使用者許可權,執行一些非特權工作,然後以安全的方式重新啟用原始有效使用者ID。
如果使用者是root或程式是set-user-ID-root,則必須特別小心。setuid() 函式會檢查呼叫者的有效使用者ID,如果它是超級使用者,則所有程序相關的使用者ID都將設定為uid。發生這種情況後,程式將無法恢復root許可權。
因此,希望暫時放棄root許可權,假定非root使用者的身份,然後恢復root許可權的set-user-ID-root程式不能使用setuid()。可以使用(非POSIX,BSD)呼叫seteuid()來實現此目的。
如果uid與舊的有效uid不同,則程序將被禁止留下核心轉儲。
getuid (2)
seteuid (2)
setfsuid (2)
setreuid (2)
廣告