詞彙表/你會看到的程序

tccd

又稱:隱私權限

簡短回答

tccd是管理隱私權限的macOS程序:哪些App可以使用相機、麥克風、螢幕錄製、你的檔案和檔案夾、聯絡人、「完整磁碟取用權限」和「輔助使用」。TCC是Transparency, Consent and Control(透明度、同意與控制)的縮寫,每個「想要取用」提示背後都是這套系統。

每當App要使用受保護的項目時,macOS都會詢問tccd是否允許。tccd會把答案存在資料庫中,還沒有答案時就顯示權限提示。你在「系統設定」→「隱私權與安全性」中開啟和關閉的,就是tccd的資料庫。

它有兩個實例:一個服務你自己的帳號,一個服務系統。兩者平時都處於閒置狀態,幾乎不耗資源。

tccd為什麼使用這麼多CPU

某個App正在一再要求權限,通常是因為被拒絕後不斷嘗試,或是更新後它的簽署已和tccd先前核准的不同。最常見的是螢幕錄製和輔助使用權限。

較少見的情況是,在遷移或中斷的更新之後,權限資料庫出了問題,tccd一直讀取失敗。

如何修正

打開「系統設定」→「隱私權與安全性」,找到App需要的權限,把它關閉後再開啟;或用減號按鈕把App從列表中移除,讓它重新要求。

若要為所有App重置某一項權限,可以在「終端機」中使用tccutil reset加上服務名稱,例如tccutil reset ScreenCapture。App下次需要時會再次要求。

如何查看是哪個App一直在詢問tccd

tccd很忙的時候,真正該問的是誰在要求什麼。它自己的記錄會把這兩件事都告訴你。

  1. 打開活動監視器,選擇「顯示方式」→「所有程序」,然後在搜尋欄位中輸入tccd。「使用者」欄位中,系統實例顯示為root,你的實例則顯示你的名稱。記下是哪一個在用CPU。
  2. 打開「終端機」並執行log stream --predicate 'process == "tccd" AND eventMessage CONTAINS "AUTHREQ"'。按下Control-C即可停止。
  3. 閱讀一再重複的那幾行。service=是權限名稱,例如kTCCServiceScreenCapture;identifier=是App名稱,例如com.example.app。
  4. 看結果那幾行中的authValue=。0代表拒絕,2代表允許。一次又一次得到0的App,就是那個迴圈。
  5. 只替那個App重設那一項權限。服務名稱中kTCCService之後的部分就是tccutil要的參數,所以tccutil reset ScreenCapture com.example.app只會清除該App的這一項答覆。tccutil reset All com.example.app則會清除它的所有權限。
  6. 再打開一次這個App並回應它的提示,或在「系統設定」→「隱私權與安全性」中給予權限。

tccd的正常用量與異常情況

正常:接近零,每當有App要求受保護的項目時會小小跳動一下。App要求得很頻繁,但大多數答覆都是瞬間從資料庫中取出。

值得檢查:tccd一連好幾分鐘都留在CPU列表中,或你已經給予的權限仍一再詢問。常見原因如下:

  • 某個App更新過或重新簽署過,tccd不再把它認作你核准過的那個App。
  • 你拒絕過的App仍不停地要求。
  • 移轉時權限資料庫沒有完整搬過來。

為什麼已給予的權限沒有作用

有些權限只在App啟動時才會生效,常見的是「螢幕錄製」和「完整磁碟取用權限」:開啟它們時,macOS會提議結束並重新打開App。如果你選擇「稍後」,在你自己結束這個App之前,它會繼續像沒有權限一樣執行。

如果開關已經開啟,重新啟動App後仍無法使用該功能,就把開關關閉,用減號按鈕把App從列表中移除,再重新加入。這樣tccd資料庫中的舊記錄就會換成與這個App目前狀態相符的記錄。

大家常問的問題

Mac上的tccd是什麼?

它是管理隱私權限(例如相機、麥克風、螢幕錄製和檔案取用)的macOS程序。它負責顯示權限提示,並記住你的回答。

tccd的CPU用量為什麼很高?

通常是某個App在反覆要求權限,多半是更新改變了它的簽署。在「隱私權與安全性」中重新授予權限,或用tccutil重置,就能終止這個循環。

用tccutil重置隱私權限安全嗎?

安全。它只會清除該權限已儲存的回答,讓App再次要求。它不會移除其他任何東西,但你需要重新核准需要這項權限的App。

可以停用tccd嗎?

不行。它是macOS的一部分,受「系統完整性保護」保護,少了它,就沒有任何App能被允許或拒絕取用你的相機、麥克風或檔案。要讓提示不再出現,就回應它,或在「系統設定」→「隱私權與安全性」中更改該App的權限。

Mac上的TCC資料庫在哪裡?

你自己的權限在~/Library/Application Support/com.apple.TCC/TCC.db中,系統層級的權限則在/Library底下的同一路徑中。macOS會保護這兩個檔案,所以請在「系統設定」中或用tccutil更改權限,不要直接編輯它們。

相關詞條

想找比活動監視器更好的工具?請參閱Mac上最好用的活動監視器替代方案,或瀏覽詞彙表中的所有詞條。