setfsuid() - Unix,Linux 系統呼叫 - 技術教學
Tutorials Point


  Unix 初學者指南
  Unix Shell 程式設計
  高階 Unix
  Unix 有用參考
  Unix 有用資源
  精選閱讀

版權所有 © 2014 tutorialspoint



  首頁     參考     討論論壇     關於 TP  

setfsuid() - Unix,Linux 系統呼叫


previous next AddThis Social Bookmark Button

廣告

名稱

setfsuid - 設定用於檔案系統檢查的使用者標識

語法

#include <unistd.h> /* glibc 使用 <sys/fsuid.h> */

int setfsuid(uid_t fsuid);

描述

系統呼叫 setfsuid() 設定 Linux 核心用於檢查所有檔案系統訪問的使用者 ID。通常,fsuid 的值會覆蓋有效使用者 ID 的值。事實上,每當有效使用者 ID 更改時,fsuid 也會更改為有效使用者 ID 的新值。

顯式呼叫 setfsuid() 和 setfsgid() 通常僅由諸如 Linux NFS 伺服器之類的程式使用,這些程式需要更改用於檔案訪問的使用者和組 ID,而無需相應更改真實和有效使用者和組 ID。程式(如 NFS 伺服器)的正常使用者 ID 的更改是一個安全漏洞,可能會使其暴露於不需要的訊號。(但請參見下文。)

只有當呼叫者是超級使用者或 fsuid 與真實使用者 ID、有效使用者 ID、已儲存的 set-user-ID 或 fsuid 的當前值匹配時,setfsuid() 才會成功。

返回值

成功時,返回 fsuid 的先前值。出錯時,返回 fsuid 的當前值。

符合標準

setfsuid() 是 Linux 特定的,不應在旨在可移植的程式中使用。它自 Linux 1.1.44 以來存在,並且自 libc 4.7.6 以來存在於 libc 中。

錯誤

不會向呼叫者返回任何型別的錯誤訊息。至少,當呼叫失敗時(因為呼叫者缺少 CAP_SETUID 功能),應返回 EPERM

備註

當 glibc 確定引數不是有效的使用者 ID 時,它將返回 -1 並將 errno 設定為 EINVAL,而不會嘗試系統呼叫。

請注意,在此係統呼叫引入時,程序可以向具有相同有效使用者 ID 的程序傳送訊號。如今,訊號許可權處理略有不同。

參見



previous next Printer Friendly

廣告


  

廣告



廣告
© . All rights reserved.