国产探花免费观看_亚洲丰满少妇自慰呻吟_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/


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 柯坪县| 石嘴山市| 阿城市| 大英县| 隆昌县| 筠连县| 白城市| 明水县| 屯留县| 阿勒泰市| 察隅县| 马尔康县| 龙山县| 手游| 霍邱县| 东方市| 米泉市| 利辛县| 萨迦县| 永州市| 邵武市| 张家口市| 舟山市| 虞城县| 昭觉县| 织金县| 衡南县| 保靖县| 黄浦区| 武邑县| 鄂托克前旗| 马山县| 如皋市| 黔东| 平阴县| 琼中| 满城县| 鹤岗市| 洛阳市| 凤阳县| 抚远县|