国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 操作系統 > 正文

文件和目錄之設置用戶ID和設置組ID

2024-06-28 13:28:49
字體:
來源:轉載
供稿:網友
文件和目錄之設置用戶ID和設置組ID

與一個進程相關聯的ID有6個或更多,它們如表4-4所示:

表4-4 與每個進程相關聯的用戶ID和組ID

實際用戶ID 我們實際上是誰 實際組ID
有效用戶ID 用于文件訪問權限檢查 有效組ID 附加組ID
保存的設置用戶ID 由exec函數保存 保存的設置組ID

  • 實際用戶ID和實際組ID標識我們究竟是誰(執行這個程序的用戶和組)。這兩個字段在登錄時取自口令文件中的登錄項。通常,在一個登錄會話間這些值并不改變,但是超級用戶進程有方法改變它們。
  • 有效用戶ID,有效組ID以及附加組ID決定了我們的文件訪問權限。
  • 保存設置用戶ID和保存設置組ID在執行一個程序時包含了有效用戶ID和有效組ID的副本

在POSIX.1 2001版中,需要這些保存的ID。在早期POSIX版本中,它們是可選的。一個應用程序在編譯時可測試常量_POSIX_SAVED_IDS,或在運行時從參數_SC_SAVED_IDS調用函數sysconf,以判斷此實現是否支持這種特征。

通常,有效用戶ID等于實際用戶ID,有效組ID等于實際組ID。

每個文件都有一個所有者和組所有者,所有者由stat結構中的st_uid成員表示,組所有者則由st_gid成員表示。

當執行一個程序文件時,進程的有效用戶ID通常就是實際用戶ID,有效組ID通常就是實際組ID。但是可以在文件模式字(st_mode)中設置一個特征標志,其含義是“當執行此文件時,將進程的有效用戶ID設置為文件所有者的用戶ID(st_uid)”。與此相類似,在文件模式字中可以設置另一位,它使得將執行此文件的進程的有效組ID設置為文件的組所有者ID(st_gid)。在文件模式字中的這兩位被稱為設置用戶ID(set-user-ID)位和設置組ID(set-group-ID)位。

例如,若文件所有者是超級用戶,而且設置了該文件的設置用戶ID位,然后當該程序由一個進程執行時,則該進程具有超級用戶特權。不管執行此文件的進程的實際用戶ID是什么,都進行這種處理。例如,UNIX程序passwd(1)允許任一用戶改變其口令,該程序是一個設置用戶ID程序。因為該程序應能將用戶的新口令寫入口令文件(一般是/etc/passwd或/etc/shadow)中,而只有超級用戶才具有對該文件的寫權限,所有需要使用設置用戶ID特征。因為運行設置用戶ID程序的進程通常得到額外的權限,所以編寫這種程序時要特別謹慎。

設置用戶ID及設置組ID位都包含在st_mode值中。這兩位可用常量S_ISUID和S_ISGID測試。

本篇博文內容摘自《UNIX環境高級編程》(第二版),僅作個人學習記錄所用。關于本書可參考:http://www.apuebook.com/


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沙坪坝区| 塔河县| 璧山县| 连云港市| 辉县市| 衡东县| 兰西县| 新巴尔虎右旗| 宜兰市| 西平县| 武威市| 图片| 沧源| 伊宁县| 金平| 曲阜市| 宣汉县| 蕉岭县| 林州市| 汤原县| 且末县| 深圳市| 大安市| 连平县| 武定县| 东至县| 梅州市| 拉孜县| 准格尔旗| 永川市| 抚松县| 仁化县| 沁阳市| 宁津县| 潞西市| 玉山县| 宝鸡市| 宝鸡市| 抚宁县| 高州市| 读书|