匿名
尚未登入
登入
頂極製作所
搜尋
檢視 緯育 2026-0402 的原始碼
出自頂極製作所
命名空間
頁面
討論
更多
更多
頁面操作
閱讀
檢視原始碼
歷史
←
緯育 2026-0402
由於下列原因,您沒有權限進行編輯此頁面的動作:
您請求的操作只有這個群組的使用者能使用:
管理員
您可以檢視並複製此頁面的原始碼。
== 三種特殊權限 == [[檔案:2026-0402-02.png|800px]] == ACL 控制 == 本系列講座探討了Linux系統中的特殊權限設定與精細化的存取控制。第一部分透過實際操作展示了SUID(Set User ID)權限的潛在風險,講師以less指令為例,說明了當為指令設定SUID後,普通使用者執行它時,程序所有者會變為檔案的擁有者(如root),若該程式存在漏洞,可能導致權限提升,構成嚴重系統威脅。<br><br> 第二部分則深入介紹了存取控制列表(ACL)機制,以解決標準權限(使用者、群組、其他)在應對複雜授權情境時的局限性。ACL擴增了標準權限,允許為檔案或目錄設定多個特定使用者和群組的存取規則。課程涵蓋了如何檢查系統對ACL的支援、識別與讀寫ACL規則,並解釋了mask(最高有效權限)和default(預設繼承規則)等核心概念。<br><br> 第三部分透過五個實作練習,詳細演示了如何使用getfacl和setfacl指令管理ACL。練習內容包括:為檔案賦予特定使用者或群組的讀寫權限(即使基本權限不允許)、使用mask暫時中止ACL權限、清除或移除特定ACL規則,以及將ACL應用於目錄。講師強調了ACL在提供彈性權限管理方面的實用性,同時也說明了其運作原理與注意事項。 === 標準權限與特殊權限的局限性 === * 標準權限的限制 ** 傳統的Linux檔案權限系統非常單一,每個檔案或目錄只擁有一組擁有者(user)、一個群組(group)以及對應的讀(r)、寫(w)、執行(x)權限。 ** 當需要將一個檔案授權給兩個以上特定的使用者或群組時,標準權限會變得難以管理。例如,需要將多個使用者加入同一個群組,可能會打亂原有的群組規劃。 * 特殊權限(SUID)的概念與風險 ** SUID(Set User ID)是一種特殊權限,允許使用者在執行某個可執行檔時,暫時獲得該檔案擁有者的權限。可使用chmod u+s [檔案名稱]來設定。 ** 當一個指令被設定了SUID權限後(假設其擁有者為root),任何使用者執行它時,該程序的有效使用者ID會變成root。 ** 安全風險:如果一個具有SUID權限且屬於root的程式存在漏洞,攻擊者便可能利用這個漏洞執行任意程式碼,從而獲得系統的root權限。漏洞可能潛伏很久才被發現,例如曾有Linux核心被植入後門長達十年未被發現的案例。 === 權限與程序執行分析 === * 一般權限下的指令執行 ** 使用者可以讀取具有讀取權限的檔案,例如普通使用者(user)可以透過less指令查看/etc/passwd檔案。 ** 透過ps aux | grep [指令名稱]指令,可以查詢系統中正在執行的程序。 ** 在未設定特殊權限的情況下,當一個使用者執行某個指令時,該程序的擁有者就是該使用者本人。 * SUID權限下的程序執行 ** 講師展示了,在less被設定SUID後,user再次執行less指令,但透過ps指令查詢,發現該程序的擁有者變成了root,而非執行它的user。 === 存取控制列表 (Access Control List, ACL) === * ACL的定義與目的 ** ACL是一種補充標準權限不足的功能,提供更精細的權限控制。 ** 它能針對使用者(User)、群組(Group)及其他人(Other)的權限進行擴增,允許一個檔案或目錄擁有多個使用者和群組的權限設定。 * 檢查系統對ACL的支援 ** ACL通常是Linux核心的預設功能。可以使用 dmesg | grep -i acl 指令來檢查開機時是否已載入ACL功能。 * 識別與讀取ACL ** 識別:使用 ls -l 指令時,若檔案權限字串末尾出現一個「+」號,代表該檔案或目錄已設定了ACL。若末尾是「.」(點),則代表啟用了SELinux標籤。 ** 讀取:使用 getfacl [檔案或目錄名] 指令來讀取ACL的詳細規則。(在較新Ubuntu版本可能需先apt install acl) ** 輸出內容解讀: ** user::rw-:檔案擁有者的權限。 ** user:joey:rwx:額外新增的使用者 joey 的權限。 ** group::r--:檔案所屬群組的權限。 ** group:manager:r-x:額外新增的群組 manager 的權限。 ** mask::rwx:定義ACL規則的「最高有效權限」。所有額外設定的user和group權限都會受此限制。 ** other::r--:其他人的權限。 ** default:...:預設ACL,只對目錄有效,作用於「未來」在該目錄下新建立的檔案或目錄,使其自動繼承ACL規則。 * 設定與管理ACL ** 使用 setfacl [選項] [規則] [檔案或目錄名] 指令來設定ACL。 ** 常用選項: ** -m (modify):新增或修改ACL規則。 ** -x (remove):移除指定的ACL規則。 ** -b (remove-all):移除所有ACL規則。 ** 規則格式:u:[帳號]:[權限] 或 g:[群組]:[權限]。 === 透過實作練習ACL === * 練習一:賦予特定使用者讀取權限 ** 為權限600的檔案,使用 setfacl -m u:[使用者名稱]:r [檔案名] 新增讀取權限。 * 練習二:賦予特定群組讀寫權限 ** 為權限600的檔案,使用 setfacl -m g:[群組名稱]:rw [檔案名] 新增群組讀寫權限。 * 練習三:使用 mask 暫停 ACL 權限 ** 使用 setfacl -m m::--* [檔案名] 將mask權限清空,即可暫時禁用所有ACL權限,而無需刪除規則。 * 練習四:移除與清除 ACL 規則 ** setfacl -b [檔案名]:清除所有ACL,+號消失。 ** setfacl -x g:[群組名] [檔案名]:僅刪除單一規則,但+號可能因mask存在而保留。 * 練習五:對目錄設定 ACL ** 為權限700的目錄,使用 setfacl -m g:[群組名稱]:rwx [目錄名] 賦予群組完全權限。 ** 繼承性:在目錄下新建的檔案預設不會繼承ACL,需額外設定default ACL。 [[檔案:2026-0402-03.png|800px]] === 目錄的Default ACL(預設存取控制清單) === * 作用範圍與影響 ** Default ACL設定在目錄上,不直接改變該目錄本身的存取權限;其作用是在該目錄下新建立的檔案或子目錄自動繼承預設的ACL項目。 ** 當使用者在已設Default ACL的目錄內建立檔案時,系統會依Default ACL內容自動附加相應的權限設定到新檔案上。 * 設定方式與語法概念 ** 在目錄層級加上「Default」ACL項目即可;語法需指定使用者(如Amy、Gooper)與權限(「全線」指權限,應為讀、寫、執行的權限組合)。 ** 示意格式:指定使用者名稱,以冒號分隔使用者與其權限,例如「使用者:名稱:權限」,作為Default ACL條目。 ** 講師提到後續有「練習題」與「答案」可供參考,但課堂上不展開。 === SELinux(Security-Enhanced Linux)概述與系統支援 === * 支援與預設狀態 ** 由「美國國家安全局(NSA)」與「Chun Lang」相關介紹(講者口述),用於提升Linux安全性。 ** Red Hat系列(Red Hat、CentOS、Fedora、Rocky Linux等)預設開啟SELinux,需特別注意其影響與配置。 ** Debian系列可能「未安裝」或「不支援」;是否支援視各發行版而定。 * 機制與服務特性 ** SELinux作為系統服務,對檔案、目錄、程序(process)與網路存取都會檢查其「標籤」(label)。 ** 標籤存在於各種對象: ** 檔案與目錄:可用「ls -Z」查看(示例提及對/etc目錄使用「ls -Z /etc」)。 ** 網路介面與埠(port)、網路卡也有標籤。 ** 程序(含遠端連線時啟動的程序)也具備標籤。 ** 標籤不一定相同:例如/etc的標籤樣式不代表/root目錄相同;每個對象都有其一串標籤。 * Policy(政策)與執行邏輯 ** SELinux以「Policy」定義允許或拒絕的規則,主設定檔中包含具體規劃。 ** 當SELinux檢測到實際標籤與Policy預期不一致時,強制模式下將拒絕執行。 * 標籤結構與複雜性 ** 標籤由多段以冒號分隔的欄位構成,常見欄位包含user、role(講者口述為ruler)、type、level、label等。 ** 由於標籤與Policy設計較為複雜,講師表示課堂不細講,僅提供常用整理供自行研究。 === SELinux運作模式與管理 === * 運作模式 ** enforce(強制):標籤必須與Policy匹配,若不一致即不允許執行。 ** permissive(寬容):會檢查並記錄標籤錯誤,但仍允許執行(「我看你標籤有錯,但是我還是給你RUN」)。 ** disable(停用):直接關閉SELinux,不進行檢查或強制。 * 臨時與永久設定 ** 臨時調整:可使用「setenforce」切換,達到暫時關閉或調整模式。 ** 永久關閉或設定開機模式:至主設定檔(實務常見為/etc/selinux/config)設定為對應目標(如permissive或disabled),使每次開機套用。 * 實務建議與注意事項 ** 在Red Hat與CentOS等系統上,因SELinux預設開啟且較複雜,教學或測試時講師常「先把它關掉」以避免干擾。 [[檔案:2026-0402-04.png|800px]]
返回到「
緯育 2026-0402
」。
* [[檔案:2000-Dragon-30.png|15px]] [[附近走走]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[應用程式]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[郵遞區號]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[作品紀錄]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[攝影相簿]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[網路書籤]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[網路照片]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[星艦日誌]]<br> * [[檔案:2000-Dragon-30.png|15px]] [[Privacy_Policy|隱私政策]]<br>
附近走走
應用程式
郵遞區號
作品紀錄
攝影相簿
網路書籤
網路照片
星艦日誌
隱私政策
首頁
wiki工具
wiki工具
特殊頁面
頁面工具
頁面工具
使用者頁面工具
更多
連結至此的頁面
相關變更
頁面資訊
頁面日誌