st_mode屏蔽意義S_IRUSR用戶-讀S_IWUSR用戶-寫S_IXUSR用戶-執行S_IRGRP組-讀S_IWGRP組-寫S_IXGRP組-執行S_IROTH其他-讀S_IWOTH其他-寫S_IXOTH其他-" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

文件和目錄之文件訪問權限

系統 2054 0

st_mode值也包含了針對文件的訪問權限位。所有文件類型(目錄文件、字符特殊文件等)都有訪問權限(access permission)。

每個 文件 有9個訪問權限位,可將它們分成三類,見表4-5:

表4-5 9個訪問權限位,取自<sys/stat.h>

st_mode屏蔽 意義
S_IRUSR 用戶-讀
S_IWUSR 用戶-寫
S_IXUSR 用戶-執行
S_IRGRP 組-讀
S_IWGRP 組-寫
S_IXGRP 組-執行
S_IROTH 其他-讀
S_IWOTH 其他-寫
S_IXOTH 其他-執行

在表4-5開頭三行中,術語用戶指的是文件所有者(owner)。chmod(1)命令用于修改這9個權限位。該命令允許我們用u表示用戶(所有者),用g表示組,用o表示其他。

表4-5中的三類訪問權限(即讀、寫及執行)以各種方式由不同的函數使用。我們將這些不同的使用方式匯總如下:

  • 第一個規則是,我們用名字打開任一類型的文件時,對該名字中包含的每一個目錄,包括它可能隱含的當前工作目錄都應具有執行權限。這就是為什么對于目錄執行權限位常被稱為搜索位的原因。

例如,為了打開文件/usr/include/stdio.h,需要對目錄/、/usr和/usr/include具有執行權限。然后,需要具有對該文件本身的適當權限,這取決于以何種模式打開它(只讀、讀-寫等)。

如果當前目錄是/usr/include,那么為了打開文件stdio.h,需要有對該工作目錄的執行權限。這是隱含當前工作目錄的一個實例。打開stdio.h文件與打開./stdio.h作用相同。

注意,對于目錄的讀權限和執行權限的意義是不相同的。讀權限允許我們讀目錄,獲得在該目錄中所有文件名的列表。當一個目錄是我們要訪問文件的路徑名的一個組成部分時,對該目錄的執行權限使得我們可通過該目錄(也就是搜索該目錄,尋找一個特定的文件名)。

引用隱含目錄的另一個例子是,如果PATH環境變量指定了一個我們不具有執行權限的目錄,那么shell絕不會在該目錄下找到可執行文件。

  • 對于一個文件的讀權限決定了我們是否能夠打開文件進行讀操作。這與open函數的O_RDONLY和O_RDWR標志相關。
  • 對于一個文件的寫權限決定了我們是否能夠打開該文件進行寫操作。這與open函數的O_WRONLY和O_RDWR標志相關。
  • 為了在open函數中對一個文件指定O_TRUNC標志,必須對該文件具有寫權限。
  • 為了在一個目錄中創建一個新文件,必須對該目錄具有寫權限和執行權限。
  • 為了刪除一個現有文件,必須對包含該文件的目錄具有寫權限和執行權限。對該文件本身則不需要有讀、寫權限。
  • 如果用6個exec函數中的任何一個執行某個文件,都必須對該文件具有執行權限。該文件還必須是一個普通文件。

進程 每次打開、創建或刪除一個 文件 時,內核就進行文件訪問權限測試 ,而這種測試可能涉及 文件的所有者(st_uid和st_gid)、進程的有效ID(有效用戶ID和有效組ID)以及進程的附加組ID (若支持的話)。 兩個所有者ID是文件的性質,而兩個有效ID和附加組ID則是進程的性質。 內核進行的測試是:

(1)若進程的有效用戶ID是0(超級用戶),則允許訪問。這給予了超級用戶對整個文件系統進行處理的最充分的自由。

(2) 若進程的有效用戶ID等于文件的所有者ID(也就是該進程擁有此文件), 那么:若所有者適當的訪問權限位被設置,則允許訪問,否則拒絕訪問。適當的訪問權限位指的是,若進程為讀而打開該文件,則用戶讀位應為1;若進程為寫而打開該文件,則用戶寫位應為1;若進程將執行該文件,則用戶執行位應為1.

(3)若進程的有效組ID或進程的附加組ID之一等于文件的組ID,那么:若組適當的訪問權限位被設置,則允許訪問,否則拒絕訪問。

(4)若其他用戶適當的訪問權限位被設置,則允許訪問,否則拒絕訪問。

按順序執行這四步。注意,如若進程擁有此文件(第2步),則按用戶訪問權限批準或拒絕該進程對文件的訪問——不查看組訪問權限。類似地,若進程并不擁有該文件,但進程屬于某個適當的組,則按組訪問權限批準或拒絕該進程對文件的訪問——不查看其他用戶的訪問權限。

?

?

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

?

?

文件和目錄之文件訪問權限


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产成人精品在视频 | 奇米影视奇米四色888av | 亚洲中字在线 | 玖玖国产在线 | 亚洲瑟瑟网 | 911国产视频 | 色视频播放| 99精品亚洲 | 四虎影院在线播放 | 91中文| 久草在在线视频免费 | 一级毛片国产 | 日日摸夜夜夜夜夜添 | 99久久精品免费看国产高清 | 国产成人免费不卡在线观看 | 黄色片在线观看网站 | 五月婷影院 | 亚洲高清在线观看视频 | 久久国产成人精品麻豆 | 久久精品国产亚洲片 | 久久久久在线视频 | 91精品全国免费观看老司机 | 黑人和黑人激情一级毛片 | 国产com | 欧美日韩中文字幕久久伊人 | 波多野结衣手机视频一区 | 91精品国产91久久久久久 | 一级淫片免费视频 | 日一区二区三区 | 色婷婷在线观看视频 | 日本欧美三级 | 欧美成人一区二区三区 | 日本大蕉香蕉大视频在线观看 | 最近中文字幕无免费视频 | 久久国产精品久久国产精品 | 久草精品视频在线观看 | 日日夜夜欧美 | 在线中文字幕网 | 中文字幕日韩女同互慰视频 | 精品免费视在线视频观看 | 成人99国产精品 |