C語言中設(shè)置用戶識(shí)別碼的相關(guān)函數(shù)的簡單講解
C語言setuid()函數(shù):設(shè)置真實(shí)的用戶識(shí)別碼
頭文件:
#include <unistd.h>
定義函數(shù):
int setuid(uid_t uid);
函數(shù)說明:
setuid()用來重新設(shè)置執(zhí)行目前進(jìn)程的用戶識(shí)別碼. 不過, 要讓此函數(shù)有作用, 其有效的用戶識(shí)別碼必須為0(root). 在Linux 下, 當(dāng)root 使用setuid()來變換成其他用戶識(shí)別碼時(shí), root 權(quán)限會(huì)被拋棄, 完全轉(zhuǎn)換成該用戶身份, 也就是說, 該進(jìn)程往后將不再具有可setuid()的權(quán)利, 如果只是向暫時(shí)拋棄root 權(quán)限, 稍后想重新取回權(quán)限, 則必須使用seteuid().
返回值:執(zhí)行成功則返回0, 失敗則返回-1, 錯(cuò)誤代碼存于errno.
附加說明:一般在編寫具 setuid root 的程序時(shí), 為減少此類程序帶來的系統(tǒng)安全風(fēng)險(xiǎn), 在使用完root 權(quán)限后建議馬上執(zhí)行setuid(getuid());來拋棄root 權(quán)限. 此外, 進(jìn)程uid 和euid 不一致時(shí)Linux 系統(tǒng)將不會(huì)產(chǎn)生core dump.
C語言setreuid()函數(shù):設(shè)置真實(shí)及有效的用戶識(shí)別碼
頭文件:
#include <unistd.h>
定義函數(shù):
int setreuid(uid_t ruid, uid_t euid);
函數(shù)說明:setreuid()用來將參數(shù)ruid 設(shè)為目前進(jìn)程的真實(shí)用戶識(shí)別碼, 將參數(shù)euid 設(shè)置為目前進(jìn)程的有效用戶識(shí)別碼. 如果參數(shù)ruid 或euid 值為-1, 則對(duì)應(yīng)的識(shí)別碼不會(huì)改變。
返回值:執(zhí)行成功則返回0, 失敗則返回-1, 錯(cuò)誤代碼存于errno.
C語言setfsuid()函數(shù):設(shè)置文件系統(tǒng)的用戶識(shí)別碼
頭文件:
#include <unistd.h>
定義函數(shù):
int setfsuid(uid_t fsuid);
函數(shù)說明:setfsuid()用來重新設(shè)置目前進(jìn)程的文件系統(tǒng)的用戶識(shí)別碼. 一般情況下, 文件系統(tǒng)的用戶識(shí)別碼(fsuid)與有效的用戶識(shí)別碼(euid)是相同的. 如果是超級(jí)用戶調(diào)用此函數(shù), 參數(shù)fsuid 可以為任何值, 否則參數(shù)fsuid 必須為real/effective/saved 的用戶識(shí)別碼之一.
返回值:執(zhí)行成功則返回0, 失敗則返回-1, 錯(cuò)誤代碼存于errno 附加說明此函數(shù)為 Linux 特有
錯(cuò)誤代碼:
EPERM:權(quán)限不夠, 無法完成設(shè)置.
相關(guān)文章
C++ 實(shí)現(xiàn)優(yōu)先隊(duì)列的簡單實(shí)例
這篇文章主要介紹了C++ 實(shí)現(xiàn)優(yōu)先隊(duì)列的簡單實(shí)例的相關(guān)資料,希望通過本文能幫助大家實(shí)現(xiàn)優(yōu)先隊(duì)列,需要的朋友可以參考下2017-08-08
MySQL的內(nèi)存表的基礎(chǔ)學(xué)習(xí)教程
這篇文章主要介紹了MySQL的內(nèi)存表的基礎(chǔ)學(xué)習(xí)教程,包括內(nèi)存表的創(chuàng)建以及使用限制等等,需要的朋友可以參考下2015-12-12
C語言中fgetgrent()函數(shù)和fgetpwent()函數(shù)的用法對(duì)比
這篇文章主要介紹了C語言中fgetgrent()函數(shù)和fgetpwent()函數(shù)的用法對(duì)比,分別用于讀取組格式函數(shù)和讀取密碼格式,需要的朋友可以參考下2015-08-08
解析C++浮點(diǎn)數(shù)無效值的定義與無效值判定的小結(jié)
本篇文章是對(duì)C++中浮點(diǎn)數(shù)無效值的定義與無效值的判定進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
C++利用opencv實(shí)現(xiàn)人臉檢測(cè)
這篇文章主要為大家詳細(xì)介紹了C++利用opencv實(shí)現(xiàn)人臉檢測(cè),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
C++實(shí)現(xiàn)循環(huán)隊(duì)列
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)循環(huán)隊(duì)列,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-01-01

