三年前為了讓終端機跑一支備份腳本,你給了它「完全取用磁碟」權限,之後就忘了。那個開關到今天還開著。
先講結論:這兩個權限值得花 30 分鐘審一次。「完全取用磁碟」(Full Disk Access)不是「多給幾個資料夾的權限」,它是把你整台機器交出去;「螢幕與系統音訊錄製」(Screen & System Audio Recording)等於讓對方隨時看到你螢幕上的一切。多數人的清單裡都有三到五個不需要的項目。
完全取用磁碟給出的到底是什麼
打開「系統設定」>「隱私權與安全性」>「完全取用磁碟」。這個清單裡的 App 可以存取整台機器,包含 Mail、Messages、Safari 和「家庭」的資料、Time Machine 備份資料,以及所有使用者的部分管理設定。
有兩件事要特別注意。
第一,這個權限沒有「一次性詢問」。其他權限(相機、麥克風、聯絡人)是 App 要用時系統跳窗問你;完全取用磁碟不會跳窗,App 只能請你自己去設定裡手動加。反過來說,清單上每一個項目都是你親手加進去的,所以每一個都該有個理由。
第二,子程序會繼承。這是最常被忽略的一點:你給了「終端機」完全取用磁碟,那麼任何從終端機啟動的程式,包括你 curl | bash 裝來的安裝腳本、npm 的 postinstall、某個忘了來源的 shell script,全都拿到同樣的權限。實務上,終端機是這份清單裡風險最高的一個項目。
螢幕與系統音訊錄製:不只是「分享畫面」
路徑是「系統設定」>「隱私權與安全性」>「螢幕與系統音訊錄製」。macOS 15 Sequoia 起這個面板才改成現在的名字,macOS 14 Sonoma 及更早叫「螢幕錄製」。
這個權限讓 App 讀取你螢幕上的畫面內容,而且不是只有你主動按下「分享」的那一刻。拿到權限之後,App 可以自己決定什麼時候抓畫面。也就是說,任何一個有這個權限的視窗管理工具、截圖工具、桌布 App,技術上都能在你不知情的時候截取畫面。
Sequoia 之後 Apple 加了定期提醒。根據 9to5Mac 與 MacRumors 的報導,beta 期間原本是每週提醒,後來改成每月,macOS 15.1 又進一步降低頻率;提示選項是「允許一個月」或「打開系統設定」。這是媒體報導而非 Apple 支援文件,我沒找到官方對提醒週期的說明,請以你機器上的實際行為為準。
審計步驟
先盤點,不要先刪。 把兩個清單截圖或抄下來。你需要的是「這台機器上有誰拿到什麼」,不是馬上動手。
對每個項目問一個問題。 「我上個月用過它嗎?」判斷標準不是 App 好不好,而是它現在還需不需要這個權限,才能完成你實際在做的事。
關掉,然後完全結束 App。 切換開關後按 Command + Q 真的結束 App(只關視窗不算),再重新打開。多數權限變更要重啟 App 才生效。
觀察一週。 不要一次關掉十個。先關你最有把握的三個,用一週。壞掉了再開回來,成本很低,而且你會因此知道那個 App 到底在做什麼。
如果你原本是因為找不到檔案而懷疑權限沒開,那通常不是權限問題。先用標籤和智慧檔案夾整理下載目錄,再回來看這份清單。
一次列出所有授權(可驗證)
GUI 要一個一個面板點。想一次看完,用終端機查 TCC 資料庫:
sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db \
"SELECT service, client FROM access WHERE auth_value = 2 ORDER BY service;"
系統層級的資料庫放的是全機器共用的授權:
sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" \
"SELECT client FROM access WHERE service='kTCCServiceSystemPolicyAllFiles' AND auth_value=2;"
auth_value 的意義:0 是拒絕、2 是允許、3 是有限度允許。macOS 11 之後用 auth_value;更早的版本欄位叫 allowed,用 allowed=1 篩。
這就是驗證方式。 如果查詢回傳 unable to open database file,代表你跑指令的終端機自己沒有完全取用磁碟權限,因為 TCC 資料庫本身也受保護。所以流程是:暫時給終端機完全取用磁碟、跑查詢抄下結果、再把終端機的權限關掉。輸出的 client 數量應該跟 GUI 清單大致對得上;對不上就逐條核對,通常是殘留的 helper 程序。
要強制某個 App 重新跳權限詢問,可以用 Apple 在 Xcode 文件裡列的 tccutil:
tccutil reset ScreenCapture com.example.app
tccutil 是開發者除錯工具,不是設計給日常使用的,服務名稱也可能隨版本改變,而且別跑不指定 App 的整包重置。日常撤銷權限還是走系統設定。
版本差異
- macOS 13 Ventura 起:路徑是「系統設定」>「隱私權與安全性」,不需要先點鎖頭解鎖。macOS 12 Monterey 及更早是「系統偏好設定」>「安全性與隱私性」>「隱私」,改動前要點左下角鎖頭並輸入密碼。
- macOS 15 Sequoia:「螢幕錄製」更名為「螢幕與系統音訊錄製」,新增定期提醒;15.1 降低提醒頻率。
- macOS 26 Tahoe:26.1 起,非 .app bundle 的純執行檔(例如自己編譯的 CLI 工具)在授權後不再出現在清單中。功能正常,但你無法從介面檢視或撤銷。Apple 開發者論壇上有回報,並提到後續 beta 已處理。若你依賴這類工具,把執行檔包成 .app bundle 是目前的解法。
- macOS 27 Golden Gate(2026 年 9 月 14 日釋出):僅支援 Apple Silicon。隱私權面板結構與 Tahoe 一致,本文路徑可直接套用。
- 完全取用磁碟本身自 macOS 14 以來沒有實質變動。
取捨與副作用
關掉權限不會讓 Mac 變快。 這點要先講清楚。完全取用磁碟本身不消耗資源,它只是一個開關。如果你的動機是省電或提速,這件事幫不上忙;動機應該是隱私。
會壞掉的東西。 撤銷後,備份工具可能只備份到未受保護的區域、防毒掃不到 ~/Library/Mail、磁碟工具看不到完整用量。這些 App 通常會回報錯誤,也可能靜默失敗。靜默失敗最麻煩,所以一次只關一個。
多裝置不同步。 TCC 資料庫是每台機器各自的,不透過 iCloud 同步。你在 MacBook 上關掉的東西,Mac Studio 上還是開著的。每一台都要做一次。
與既有工具重複。 同時裝兩套清理或防毒工具,它們都會要求完全取用磁碟。這不代表兩套都該給。先決定留哪一套,把另一套移除,再撤銷它的權限。殘留的 helper 常躲在 /Library/PrivilegedHelperTools/,App 刪了它還在。同樣的判斷也適用於啟動器:Raycast 與 Spotlight 的實際分工這類工具只需要 Accessibility,不需要完全取用磁碟。
App 可能改用別的路徑。 撤銷權限後,有些 App 會改要「檔案與檔案夾」權限,或改用分享表單。這未必是壞事,但要知道你只是換了一個範圍更小的授權,不是讓它完全碰不到資料。
自動化流程要一起檢查。 如果你用捷徑 Shortcuts 做批次檔案處理,撤銷權限後它會第一次執行時才失敗,而不是在設定時提醒你。改完權限,把你常用的捷徑跑一遍。
關於第三方工具:本文沒有接受任何廠商的付費合作或聯盟連結,提到的都是系統內建功能(系統設定、終端機、tccutil)。我也不建議為了「自動管理權限」另外裝一個需要完全取用磁碟權限的 App,那是拿最大的權限去解決權限問題。
審計清單
## 完全取用磁碟
保留:
- [ ] 你實際在用的第三方備份工具
- [ ] 你實際在用的防毒/端點防護
- [ ] 需要讀取 Mail / Messages 資料庫的郵件或訊息工具
關掉:
- [ ] 終端機(Terminal / iTerm)—— 除非你每天都跑需要它的腳本
- [ ] 你叫不出名字、或想不起來為什麼在清單上的 App
- [ ] 已經刪掉但殘留 helper 的 App(查 /Library/PrivilegedHelperTools/)
- [ ] 只為了「一次性操作」給過權限的工具
## 螢幕與系統音訊錄製
保留:
- [ ] 你每週至少用一次的會議軟體
- [ ] 你每天在用的視窗管理或截圖工具(只留一套)
關掉:
- [ ] 你已經換掉的舊截圖/錄影工具
- [ ] 螢幕保護、桌布、視覺特效類 App
- [ ] 已移除但仍在清單中的項目
## 驗證
- [ ] 每個開關切換後,Command + Q 結束 App 再重開
- [ ] sqlite3 查詢結果與 GUI 清單對得上
- [ ] 觀察一週,確認沒有工具靜默失效
不要在關掉權限的同一週換工作流程。一次改一項,你才知道是哪一項造成問題。
