匿名
尚未登入
登入
頂極製作所
搜尋
檢視 緯育 2026-0331.2 的原始碼
出自頂極製作所
命名空間
頁面
討論
更多
更多
頁面操作
閱讀
檢視原始碼
歷史
←
緯育 2026-0331.2
由於下列原因,您沒有權限進行編輯此頁面的動作:
您請求的操作只有這個群組的使用者能使用:
管理員
您可以檢視並複製此頁面的原始碼。
== 權限管理的設定和應用 == 本次講座於2026-03-31聚焦 Linux/Unix/Mac 通用的權限模型與檔案類型,從系統基本權限(User/Group/Other 的 rwx)與判定順序切入,說明檔案與目錄中讀/寫/執行的語義、以 ls -l/ls -ld 觀察權限與種類、數字權限(如 755/777)與符號法設定、遞迴修改的影響,以及變更所有權與群組(chmod/chown/chgrp)的實務。講師強調基本權限易懂但有侷限,Root 在預設權限模型下擁有絕對權能;建立時的初始權限由權限遮罩(umask)決定,不建議隨意變更。為補足基本權限不足(例如無法擋住 root、欠缺特殊保護/功能),課程引入延伸屬性與 ACL 作為更細粒度與進階控制;同時對比 Windows 權限與透明壓縮的操作與影響。並預告後續再深入「特殊權限」細節與 Linux 上的透明壓縮實作。 === 權限體系與基本概念 === * 系統基本權限(U/G/O 與 rwx) ** 判定順序:先比對是否為擁有者(User);否則檢查是否屬於群組(Group);否則套用 Other 權限。 ** 權限位:r=讀、w=寫、x=執行;未授權以 * 表示。 ** 檔案語義:r 讀內容、w 改內容、x 執行程式或腳本。 ** 目錄語義:r 列出名稱、w 在目錄內建立/刪除/改名、x 允許進入(cd)。改檔名屬於改目錄內容,取決於上層目錄 w;改內容取決於檔案自身 w。 ** 以 ls -l/ls -ld 觀察權限與種類;以 id 查 UID/GID 與所屬群組,據以判斷落在哪一組權限。 ** 常見裝置檔(/dev/sda 等 b、c 開頭)權限設計嚴格,避免一般使用者進行破壞性操作。 * Root 的絕對權能 ** 無論檔案設定為 000、700 等,root 仍可讀/寫/刪/改,凸顯基本權限的侷限。 * 權限誤解與系統比較 ** Linux 基本權限簡單易懂但有限;Windows 權限更細緻且複雜,容易誤設至「自己都打不開」。安全規劃需審慎。 === 檔案類型與 ls 欄位判讀 === * 首字母代表種類:-(正規檔案 regular file)、d(目錄)、l(符號連結)、b(區塊裝置)、c(字元裝置)、s(socket)、p(FIFO)。 * Everything is a file:檔案、目錄、裝置等皆以檔案抽象呈現;權限公開透明,可直接透過 ls 判讀操作可能性。 3. 數字權限與 chmod * 數值對應:r=4、w=2、x=1;三者可相加形成 0–7。 * 常見設定:755(u=rwx,g=r-x,o=r-x)、750、664、777(風險極高,形同全開)。 * 三位與四位數:前三位分別對應 u/g/o;四位數的首位為特殊權限位。 * chmod 符號法與數字法 ** 符號法:u,g,o,a 與 +、-、= 可細緻變更(如 a+x、g,o-x、u=r 等)。 ** 數字法:設定快速精簡但需心算。 ** 目錄與遞迴:對目錄單獨修改僅影響該目錄本身;需以 -R 才會作用至子項,否則可能出現能進入但看不到/無法操作內部的情況。 === 所有權與群組變更(chown、chgrp) === * chown user[:group] path(可加 -R 遞迴):主要用於改擁有者,可同時改群組。 * chgrp group path(可加 -R):專用於變更群組。 * 留意帳號/群組同名為常見設計;變更目錄與其子項需明確使用遞迴以避免權限/所有權不一致。 === 建立時的權限來源:權限遮罩(umask) === * 當建立檔案/目錄時,系統依 umask 決定初始權限外觀,解釋「建出來會長那樣」的原因。 * 不建議隨意更改:錯配可能導致該開的不開、該關的不關,衍生安全與操作問題。 === 延伸控制:延伸屬性與 ACL === * 延伸屬性(基於檔案系統) ** 動機:補足基本權限不足、提供特殊保護/限制/功能(如內容鎖定、透明壓縮)。 ** 教學案例:教師作業資料夾中,使用內容鎖定避免學生刪改教師或他人檔案。 * ACL(Access Control List) ** 當 U/G/O 無法表達需求(如指定多位使用者的差異權限、排除特定個體),以 ACL 提供細粒度控制。 ** 判定時需同時考量基本權限與 ACL 條目,ACL 是補充而非取代。 === 特殊權限的定位與生效條件 === * 特殊權限(如 sticky bit t)在特定情境才生效:加在目錄上(如 /tmp)可避免彼此互刪;加在檔案上現代系統多無效。 * 為避免與基本權限混淆,教學順序先鞏固基本權限,再進入特殊權限細節。 === 透明壓縮與效能取捨(與 Windows 比較) === * Windows 範例:可對整顆磁碟、資料夾或單檔啟用壓縮;「檔案大小」不變但「磁碟大小」減少,本質是以 CPU 換空間。整碟壓縮影響效能較大,優先建議資料夾或必要檔案。 * Linux/Unix 對應:亦有透明壓縮概念(存時壓縮、讀時解壓縮),細節留待後續章節實作與比較。 === 系統差異與安全實務 === * 發行版與版本在預設權限可能不同;一般使用者與 root 行為差異明顯,勿想當然。 * 權限規劃與使用者隔離需審慎,避免成為攻擊面;權限/漏洞在業界具高價值,顯示其安全關鍵性。 * 工具著色僅為輔助,應依首字母與權限位精準判讀。 [[檔案:2026-0331-04.png|800px]] === Linux 檔案與目錄權限基礎與操作 === * 擁有者與群組 ** 以 root 在 /tmp 建立 testdir1、testdir2 等目錄與檔案(testfile1、testfile2),其擁有者與群組均為 root;以 ls -ld 檢視權限與屬性。user 未加入 root 群組,因此判定落在 others 欄位。 * 目錄權限語意(進入、列出、管理檔名) ** 進入需 X;有 X 可 cd,即便無 R。 ** 列出需 R;若有 X 無 R,可進入但 ls 受拒。 ** 新增、刪除、改名等「管理檔名」依賴目錄 W(通常也需 X)。 * 檔案權限語意(讀寫內容) ** 讀取需檔案 R;寫入需檔案 W。目錄權限不決定檔案內容的寫入可行性。 * 常用指令 ** 權限檢視:ls -l、ls -ld ** 建立:mkdir、touch ** 讀取:cat ** 更名/移動:mv(取決於上層目錄 W/X 與 sticky bit) ** 刪除:rm、rm -f、rm -rf(受目錄權限與 sticky bit 影響) ** 權限/屬性調整:chmod、chown、chgrp === 權限比對順序與群組設定 === * 比對順序(user → group → others) ** 系統依序比對使用者身分、所屬群組、其他;一旦在某層符合即停止,不再落到後續層級。因此當帳號屬於某群組,實際行為以群組權限為準,others 不再適用。 * 範例:testdir3 ** 以 root 在 /tmp 建立 testdir3,使用 chmod 將 Others 設為 r-x(移除 w),並以 chgrp 將群組改為 user。 ** 若群組權限為 rwx,屬於 user 群組的使用者可在目錄中建立、刪除與改名檔案;Others 為 r-x 則非群組成員不可寫入但可讀與進入。 ** 檔案預設擁有者通常為建立者且受 umask 影響;能否寫入檔案內容仍取決於檔案本身的 W。 === Sticky bit(t/T)在目錄上的影響與錯誤訊息 === * 定義與情境 ** 共享目錄(如 /tmp)設 sticky bit 表示任何人皆可建立物件,但只有物件擁有者(或目錄擁有者、特權者)能刪除或更名該物件。 * 錯誤表現差異 ** 因缺乏 rwx 權限導致的操作失敗,常見訊息為「Permission denied」。 ** 因 sticky bit 規則阻擋非擁有者對目錄本身(更名、刪除)或對他人物件的操作,常見訊息為「操作不被允許」(operation not permitted)。 * 範例差異 ** 在 testdir1(others r-x)中,user 無法新增、刪除、改名檔案(目錄缺 W),嘗試更名或刪除目錄本身時受 /tmp 的 sticky bit 影響,顯示「操作不被允許」。 ** 在 testdir2(others rwx)中,user 能新增、刪除與改名目錄內檔案,但對目錄本身的更名或刪除仍因 sticky bit 受限,空目錄 rm -rf 仍回報「操作不被允許」。 === 練習題延伸場景與判斷方法 === * 題目四:將某目錄擁有者設為 user(chown user),使 user 在該目錄的操作更為寬鬆;目錄內檔案若由 root 擁有且無相應 W,則內容寫入仍受限。 * 題目五:目錄 others 設為 ---,即便目錄內檔案屬於使用者本人,因目錄缺 X 無法進入、缺 R 無法列出、缺 W 無法管理檔名,所有操作皆受阻。 * 判斷方法:以「打勾/打 X」快速標示對於列出、進入、讀取、寫入、改名、刪除等操作的可行性;特別留意目錄 X 對進入與讀取的前置影響。 === umask(權限遮罩)原理、計算與安全 === * umask 值 ** 常見預設:root 0022、一般使用者 0002。可用 umask 指令臨時調整(不建議隨意更改)。 * 預設權限與運算 ** 檔案最大 0666(不含 X)、目錄最大 0777。 ** 運算方式:以位元遮罩計算或採簡化減法心智模型(如檔案 666-022=644;目錄 777-022=755)。 ** 結果示例:root 生成檔案/目錄通常為 0644/0755;一般使用者為 0664/0775。 * 影響範圍 ** 由登入帳號的 umask 與身分決定新建物件權限,程式生成檔案亦沿用當下 umask。 * 安全注意 ** 謹慎對待網路指令片段,誤設 umask 會導致權限過寬或不當,造成審計風險與追責。 [[檔案:2026-0331-05.png|800px]] === 延伸屬性(隱藏權限)概論 === * 定義與需求 ** 延伸屬性(隱藏權限)用以補足系統預設rwx權限不夠細緻的不足。 ** 系統預設權限對最高權限使用者Root無效,而延伸屬性可限制Root操作。 ** 延伸屬性依賴檔案系統的特定功能;不同檔案系統支援的延伸屬性不盡相同。 * 檔案系統與其功能 ** 檔案系統功能各異,例如NTFS支援權限規劃與檔案復原,舊版FAT32則無。 ** 範例檔案系統:NTFS、FAT32、exFAT、XFS、Btrfs、ZFS、AFS(Apple File System)、EXT系列(EXT2、EXT3、EXT4)。 ** 各檔案系統各有強項:有的擅長小檔案處理、有的搜尋快、有的適合大檔案。 * 常見延伸屬性功能 ** 大A (A):不更動存取時間(Access Time)。設定後讀取檔案不會更新存取時間戳。 ** 小a (a):僅能附加(Append Only)。 ** 檔案:只能在末端增加內容,無法修改或刪除既有內容。 ** 目錄:可新增檔案,但不得刪除或重命名既有檔案;可阻擋Root。 ** 小c (c):存檔時自動壓縮、讀取時自動解壓,類似Windows檔案壓縮。 ** 小i (i):完全鎖定(Immutable)。 ** 檔案或目錄:設定後不可新增、刪除、重命名或移動,連Root也無法修改。 ** 小e (e):EXT系特有的Extent Format,盡量將檔案內容連續存放以提升傳統硬碟讀取速度。 * 指令操作 ** lsattr:查詢檔案或目錄的延伸屬性。 ** 常用參數:-d(僅查看目錄本身)、-a(列出隱藏檔)、-R(遞迴列出)。 ** chattr:變更檔案或目錄的延伸屬性。 ** 語法:chattr [+|-]屬性 檔案/目錄。 ** +:新增屬性。 ** -:移除屬性。 ** =:直接設定屬性並覆蓋既有屬性;不建議,易誤清其他重要屬性。 === 實作練習:延伸屬性操作 === * 練習一:檔案設定為僅能附加(小a) ** 目標:內容僅能增加,不能減少或修改。 ** 步驟: 1. touch 建立檔案(例:ext-file-append-only)。 2. chattr +a [檔案名稱] 加上小a屬性。 3. echo "text" > [檔案名稱] 嘗試覆蓋寫入會失敗(> 會清空檔案)。 4. echo "text" >> [檔案名稱] 附加寫入成功(>> 為附加)。 5. 嘗試 mv 重命名或 rm -f 強制刪除均被拒絕,即使是Root。 * 練習二:目錄設定為僅能附加(小a) ** 目標:目錄只能新增檔案,不能刪除既有檔案。 ** 步驟: 1. mkdir 建立目錄(例:ext-dir-append-only)。 2. chattr +a [目錄名稱] 加上小a屬性。 3. 目錄內 touch 新檔案可成功。 4. 編輯目錄內檔案內容可成功;小a屬性作用在目錄(檔名管理),非檔案內容。 5. 嘗試 rm 刪除目錄內檔案會被拒絕,即使是Root。 6. 嘗試 rm -rf 刪除整個目錄也會因無法刪除內部檔案而失敗。 * 練習三:檔案設定為完全鎖定(小i) ** 目標:檔案完全不可修改。 ** 步驟: 1. touch 建立檔案(例:ext-file-immutable)。 2. chattr +i [檔案名稱] 加上小i屬性。 3. 使用 echo 透過 > 或 >> 修改內容均失敗。 4. 嘗試 mv 重命名或 rm 刪除均失敗。 * 練習四:目錄設定為完全鎖定(小i) ** 目標:目錄結構與內容完全不可變更。 ** 步驟: 1. mkdir 建立目錄(例:ext-dir-immutable)。 2. chattr +i [目錄名稱] 加上小i屬性。 3. 可 cd 進入該目錄(進入權限與鎖定內容無關)。 4. 在目錄內嘗試 touch 新檔案或 mkdir 新目錄均失敗。 5. 嘗試 rmdir 或 rm -r 刪除該目錄亦失敗。 [[檔案:2026-0402-01.png|800px]]
返回到「
緯育 2026-0331.2
」。
* [[檔案: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工具
特殊頁面
頁面工具
頁面工具
使用者頁面工具
更多
連結至此的頁面
相關變更
頁面資訊
頁面日誌