Глосарій/Процеси, які ви побачите
tccd
Також: дозволи приватності
Коротка відповідь
tccd — процес macOS, який керує дозволами приватності: які програми можуть використовувати камеру, мікрофон, запис екрана, ваші файли й папки, контакти, повний доступ до диска і доступність. TCC означає Transparency, Consent and Control («прозорість, згода й контроль») — систему, що стоїть за кожним запитом «хоче отримати доступ».
Щоразу, коли програма звертається до чогось захищеного, macOS питає tccd, чи це дозволено. tccd зберігає відповіді в базі даних і показує запит на дозвіл, коли відповіді ще немає. Усе, що ви вмикаєте й вимикаєте в Системних параметрах → Приватність і безпека, — це база даних tccd.
Є два екземпляри: один для вашого облікового запису й один для системи. Зазвичай обидва неактивні й майже нічого не споживають.
Чому tccd так навантажує процесор
Програма знову й знову запитує дозвіл — часто тому, що їй відмовили, а вона далі пробує, або тому, що її оновили і її підпис більше не збігається з тим, що схвалив tccd. Найчастіше це дозволи на запис екрана й доступність.
Рідше база даних дозволів пошкоджена після перенесення даних чи перерваного оновлення, і tccd раз у раз не може її прочитати.
Як це виправити
Відкрийте Системні параметри → Приватність і безпека, знайдіть дозвіл, потрібний програмі, і вимкніть та знову ввімкніть його або вилучіть програму зі списку кнопкою «мінус» і дайте їй запитати знову.
Щоб скинути один дозвіл для всіх програм, у Терміналі є tccutil reset з назвою служби, наприклад tccutil reset ScreenCapture. Програми запитають знову, коли він їм наступного разу знадобиться.
Як дізнатися, яка програма постійно звертається до tccd
Коли tccd зайнятий, корисне питання — хто запитує і що саме. Його власний журнал відповідає на обидва.
- Відкрийте Монітор активності, виберіть Перегляд → Усі процеси і введіть
tccdу поле пошуку. Стовпець «Користувач» показує root для системного екземпляра й ваше імʼя для вашого. Зверніть увагу, який із них навантажує процесор. - Відкрийте Термінал і виконайте
log stream --predicate 'process == "tccd" AND eventMessage CONTAINS "AUTHREQ"'. Натисніть Control-C, щоб зупинити. - Прочитайте рядки, що повторюються.
service=називає дозвіл, наприкладkTCCServiceScreenCapture, аidentifier=— програму, наприкладcom.example.app. - Подивіться на
authValue=у рядках результату.0означає «відмовлено», а2— «дозволено». Програма, яка знову й знову отримує0, — це і є цикл. - Скиньте цей один дозвіл для цієї однієї програми. Частина назви служби після
kTCCService— це те, чого очікуєtccutil, тожtccutil reset ScreenCapture com.example.appочищає відповідь лише для цієї програми.tccutil reset All com.example.appочищає всі її дозволи. - Відкрийте програму знову й дайте відповідь на її запит або надайте дозвіл у Системних параметрах → Приватність і безпека.
Нормальна робота tccd і ознаки проблеми
Нормально: майже нуль, з невеликим сплеском щоразу, коли програма просить доступ до чогось захищеного. Програми просять часто, але більшість відповідей миттєво надходять із бази даних.
Варто перевірити: tccd хвилинами тримається в списку процесора, або дозвіл, який ви надали, знову запитується. Звичні причини:
- Програма, яку оновили чи повторно підписали, тож tccd більше не вважає її тією програмою, яку ви схвалили.
- Програма, якій ви відмовили, але яка не перестає питати.
- База даних дозволів, яку не вдалося чисто перенести під час міграції.
Чому наданий дозвіл не працює
Деякі дозволи набувають чинності лише під час запуску програми. Найчастіше це «Запис екрана» і «Повний доступ до диска»: коли ви їх вмикаєте, macOS пропонує завершити й знову відкрити програму. Якщо вибрати «Пізніше», програма працюватиме так, ніби доступу немає, доки ви самі її не завершите.
Якщо перемикач увімкнено, а програма й після перезапуску не може скористатися функцією, вимкніть перемикач, вилучіть програму зі списку кнопкою «мінус» і додайте її знову. Це замінить старий запис у базі даних tccd записом, що відповідає програмі в її теперішньому вигляді.
Що питають люди
Що таке tccd на Mac?
Процес macOS, який керує дозволами приватності, як-от на камеру, мікрофон, запис екрана й доступ до файлів. Він показує запити на дозвіл і запамʼятовує ваші відповіді.
Чому tccd сильно навантажує процесор?
Зазвичай програма раз у раз запитує дозвіл, часто після оновлення, що змінило її підпис. Повторне надання дозволу в розділі «Приватність і безпека» або його скидання за допомогою tccutil зупиняє цикл.
Чи безпечно скидати дозволи приватності за допомогою tccutil?
Так. Це лише стирає збережені відповіді для цього дозволу, тож програми запитають знову. Більше нічого не видаляється, але вам доведеться знову схвалити програми, яким він потрібен.
Чи можна вимкнути tccd?
Ні. Він є частиною macOS і захищений функцією захисту цілісності системи, а без нього жодній програмі не можна було б надати чи заборонити доступ до камери, мікрофона або файлів. Щоб позбутися запиту, дайте відповідь на нього або змініть дозвіл програми в Системних параметрах → Приватність і безпека.
Де на Mac база даних TCC?
Ваші власні дозволи — у ~/Library/Application Support/com.apple.TCC/TCC.db, а загальносистемні — за тим самим шляхом у /Library. macOS захищає обидва файли, тож змінюйте дозволи в Системних параметрах або за допомогою tccutil, а не редагуйте ці файли.
Повʼязане
Шукаєте щось краще за Монітор активності? Дивіться найкращі альтернативи Монітору активності для Mac або перегляньте усі терміни глосарію.