歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux系統的文件模式和訪問權限解說

Linux系統的文件模式和訪問權限解說

日期:2017/2/28 17:49:21   编辑:Linux教程
1.每個文件都有三種類型用戶ID:文件擁有者ID、同組用戶ID(組ID)、所有剩下用戶ID(其他用戶ID)。並且每種類型用戶都有三種類型的訪問權限:讀、寫、執行。
2.每個運行中進程都包含:進程號、父進程號、進程組號、會話號、會話首領號、用戶ID、有效用戶ID、保存用戶ID、組ID、有效組ID、保存組ID。
3.當一個進程讀/寫/執行一個文件時,系統首先會根據進程的有效用戶ID與文件擁有者ID對比,若相同則根據文件擁有者類型的訪問權限確定當前進程是否有權進行讀/寫/執行。若不同則對比當前進程的有效用戶ID與文件同組用戶ID,若相同則應用文件的組訪問權限,不同則應用所有剩下用戶的訪問權限確定當前進程是否有權進行讀/寫/執行。
4.當一個用戶登錄後,他便執行一個交互式SHELL程序,當前這個SHELL進程的用戶ID、有效用戶ID、保存用戶ID都是當前登錄用戶的用戶ID,它的組ID、有效組ID、保存組ID是當前用戶的組ID。這樣,當這個交互式SHELL進程去執行一個程序時,系統會根據這個SHELL進程的有效用戶ID、有效組ID按第3步方式確定對被執行文件的訪問權限。若可以執行,則被執行文件作為一個進程在系統中運行,它的用戶ID、有效用戶ID、保存用戶ID、組ID、有效組ID、保存組ID與執行它的SHELL進程相同。若這個被執行程序又要訪問哪個文件,則它的有效用戶ID和有效組ID又要與被訪問文件權限進行比對以決定是否有權進行讀/寫/執行。
5.每個文件還有三個附加標記:suid、sgid、sticky
如果一個可執行文件設置了suid標志位,當它被作為一個進程執行時,它的有效用戶ID就等於這個可執行文件擁有者的ID。
如果一個可執行文件設置了sgid標志位,當它被作為一個進程執行時,它的有效組ID就等於這個可執行文件同組用戶ID。
如果一個可執行文件設置了sticky標志位,則它向內核發出一個請求,當它執行結束以後,仍然將該程序保存在內存中。
說明:當進程創建一個文件時,文件擁有者ID就是該進程用戶ID,而其組ID既可以是進程創建者組ID,也可以是父目錄的組ID,這取決於父目錄sgid標志位的值。
Copyright © Linux教程網 All Rights Reserved