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


  Unix入門
  Unix Shell程式設計
  高階Unix
  Unix有用參考
  Unix有用資源
  精選閱讀

版權所有 © 2014 tutorialspoint



  首頁     參考資料     討論論壇     關於TP  

setfsgid() - Unix,Linux系統呼叫


previous next AddThis Social Bookmark Button

廣告

名稱

setfsgid - 設定用於檔案系統檢查的組標識

概要

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

int setfsgid(uid_t fsgid);

描述

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

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

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

返回值

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

符合標準

setfsgid()是Linux特有的,不應在旨在可移植的程式中使用。它自Linux 1.1.44和libc 4.7.6起存在。

缺陷

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

備註

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

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

參見



previous next Printer Friendly

廣告


  

廣告



廣告