C說話中設置用戶辨認碼的相干函數的簡略講授。本站提示廣大學習愛好者:(C說話中設置用戶辨認碼的相干函數的簡略講授)文章只能為提供參考,不一定能成為您想要的結果。以下是C說話中設置用戶辨認碼的相干函數的簡略講授正文
C說話setuid()函數:設置真實的用戶辨認碼
頭文件:
#include <unistd.h>
界說函數:
int setuid(uid_t uid);
函數解釋:
setuid()用來從新設置履行今朝過程的用戶辨認碼. 不外, 要讓此函數有感化, 其有用的用戶辨認碼必需為0(root). 在Linux 下, 當root 應用setuid()來變換成其他用戶辨認碼時, root 權限會被擯棄, 完整轉換成該用戶身份, 也就是說, 該過程往後將不再具有可setuid()的權力, 假如只是向臨時擯棄root 權限, 稍後想從新取回權限, 則必需應用seteuid().
前往值:履行勝利則前往0, 掉敗則前往-1, 毛病代碼存於errno.
附加解釋:普通在編寫具 setuid root 的法式時, 為削減此類法式帶來的體系平安風險, 在應用完root 權限後建議立時履行setuid(getuid());來擯棄root 權限. 另外, 過程uid 和euid 紛歧致時Linux 體系將不會發生core dump.
C說話setreuid()函數:設置真實及有用的用戶辨認碼
頭文件:
#include <unistd.h>
界說函數:
int setreuid(uid_t ruid, uid_t euid);
函數解釋:setreuid()用來將參數ruid 設為今朝過程的真適用戶辨認碼, 將參數euid 設置為今朝過程的有用用戶辨認碼. 假如參數ruid 或euid 值為-1, 則對應的辨認碼不會轉變。
前往值:履行勝利則前往0, 掉敗則前往-1, 毛病代碼存於errno.
C說話setfsuid()函數:設置文件體系的用戶辨認碼
頭文件:
#include <unistd.h>
界說函數:
int setfsuid(uid_t fsuid);
函數解釋:setfsuid()用來從新設置今朝過程的文件體系的用戶辨認碼. 普通情形下, 文件體系的用戶辨認碼(fsuid)與有用的用戶辨認碼(euid)是雷同的. 假如是超等用戶挪用此函數, 參數fsuid 可認為任何值, 不然參數fsuid 必需為real/effective/saved 的用戶辨認碼之一.
前往值:履行勝利則前往0, 掉敗則前往-1, 毛病代碼存於errno 附加解釋此函數為 Linux 特有
毛病代碼:
EPERM:權限不敷, 沒法完成設置.