" 'Foo.app'가 자신의 컴퓨터에서 'Bar.app'를 제어하기 위해 액세스하려고합니다"


15

나는 Apple Events를 광범위하게 사용하여 내 컴퓨터의 다양한 응용 프로그램을 제어합니다. Mojave에 도입 된 새로운 보안 프롬프트가 무너지고 있습니다.

여기에 이미지 설명을 입력하십시오

이전 버전의 macOS에서는 응용 프로그램에 "컴퓨터 제어"권한이 부여 된 후에는 컴퓨터의 다른 응용 프로그램으로 Apple 이벤트를 보낼 수있었습니다. Mojave에서이 권한은 제어되는 각 앱마다 한 번씩 수동으로 부여해야합니다.

사용자가 액세스 권한을 부여하면 선택한 두 개의 sqlite 데이터베이스 중 하나에 저장됩니다.

  1. ~/Library/Application Support/com.apple.TCC/TCC.db
  2. /Library/Application Support/com.apple.TCC/TCC.db

    • # 2는 루트 사용자 만 볼 수 있습니다.
    • 시스템 무결성 보호는 비활성화되어 있습니다.

이러한 sqlite 데이터베이스를 직접 편집하여 자동으로 권한을 부여하고 이러한 보안 프롬프트를 무시할 수 있습니까?


@ user3439894 감사합니다. SIP는 이미 내 컴퓨터에서 비활성화되어 있습니다. 파이썬 프로그램이 Mojave의 새로운 "자동화"보호와 호환되는 것 같지 않습니다.
Wowfunhappy

Apple 이벤트를 다양한 앱으로 보내는 것은 무엇입니까 (예 : Foo.app의 수와 Bar.app의 수는 얼마입니까? 제어하는 3 대 이상의 머신으로 확장되지 않는 솔루션 (또는 그 시점에서 자금이 필요한 솔루션)으로도 괜찮습니까?
bmike

@bmike 내 애플 스크립트에는 "응용 프로그램 (텍스트로 가장 앞에있는 응용 프로그램의 경로)"과 같은 줄이 있으므로 Bar.app는 설치된 모든 응용 프로그램이 될 수 있습니다. 이것은 모두 단일 머신에 있습니다.
Wowfunhappy

한 번에 모든 것을 얻을 수 있습니다 : tell app "Finder" to open every application file in the entire contents of (path to applications folder) as alias list. 그리고 repeat with A in the result... ignoring application responses... quit the application named A... end ignoring... end repeat. 고통 스럽지만 반창고를 찢는 것과 같습니다.
CJK

답변:


7

SIP를 사용하지 않더라도 온라인에서 모든 작업을 추적하려는 대기업으로부터 사용자를 보호하는 정책으로 인해 TCC.db 데이터베이스에 직접 액세스하는 것이 더 이상 Apple에서 더 이상 지원되지 않습니다. 사용자에게 권한. 그러나 Mojave에서도이를 회피 할 수있는 방법이 있지만 주어진 컴퓨터가 MDM 프로그램에 등록 된 경우에만 작동합니다 . MDM 프로그램에 대한 자세한 내용은 여기를 참조하십시오 .

여러 컴퓨터에서 이것을 무시하기 위해 GitHubtccprofile.py 에서 사용 가능한 python 스크립트를 사용할 수 있습니다 .

할 수있는 것과 할 수없는 것에 대한 자세한 설명은 여기를 참조하십시오 .

내가 아는 한, 이것은 모하비로부터 사용자 권한을 요구할 필요가없는 유일한 방법입니다.


1
내 개인 스크립트에 대한 MDM 프로필을 얻는 것은 실용적이지 않습니다. SIP가 비활성화 된 상태에서 데이터베이스를 편집 할 수없는 이유는 무엇입니까? 시스템 자체를 직접 끌 수는 없지만 SIP가 없으면 모든 화이트리스트를 저장하는 데이터베이스를 포함하여 내 컴퓨터의 파일을 편집 할 수 있어야합니다.
Wowfunhappy

1
애플은 개인 API guarded_open_np를 사용하여이 데이터베이스에 접근하는 방식을 바꾸었다. 나는 이미 러시아 해커의 일부 게시물을 IDA Pro 로이 API를 리버스 엔지니어링하려고 시도했지만 지금까지 큰 성공을 거두지 못했습니다.
jvarela

Apple이 화이트리스트를 정상적으로 편집하는 방법에 관계없이, 데이터베이스 편집기에서 열고 읽을 수 있다는 사실에 의해 증명 된 것처럼 표준 sqlite 데이터베이스 인 것처럼 보입니다. 파일을 직접 편집하고 바꿀 수없는 또 다른 이유가있는 경우 (예 : macOS가 데이터베이스의 체크섬을 저장하고 해당 체크섬이 Apple에 의해 암호화 된 경우), 이에 대한 명확하고 포괄적 인 설명을보고 싶습니다 당신의 대답에! 감사합니다.
Wowfunhappy

1
+1이지만 블로그를 신뢰하지 않습니다. 해당 웹 사이트에서 컨텐츠를 가져와 직접 인용하거나 드라이브 또는 이와 유사한 것에 추가 할 수 있습니까?
JBis

2

항목을 삭제 한 것으로 나타났습니다.

sudo sqlite3 /Library/Application\ Support/com.apple.TCC/Tcc.db '삭제 액세스로부터 위치를 클라이언트와 같은 " %appnamehere%"'

appnamehere접근성 목록에 표시되는대로 앱 이름을 " "로 바꾸십시오 (% 기호 유지).


2
이것은 데이터베이스에서 앱을 제거하고 권한을 추가하지 않습니다. 시도 (추가 또는 제거) 할 때 아무것도하지 않는 것 같습니다.
Wowfunhappy

1
카탈리나에서는 파일을 루트 수조차 없습니다 ... 루트로 디렉토리에 시도하면 얻을 수 있습니다. Error: unable to open database "/Library/Application Support/com.apple.TCC/TCC.db": unable to open database filelsls: : Operation not permitted
Michael

@Michael은 TCC.dbCatalina 를 읽을 수 있었습니까? 난 할 수 없어,뿐만 아니라 같은 문제가 lscom.apple.TCC디렉토리
WallTearer

1
@WallTearer 예, 시스템 환경 설정
Michael

@ 마이클 쿨, 감사합니다! - 같은 순간에 나는 또한 다음 전체 디스크 액세스를 가능하게하는 유사한 제안에 기사 읽고 있었다 blog.kolide.com/macos-catalina-osquery-a6753dc3c35c 내가 iTerm2에 대한 액세스 권한을 부여하고 tccutil과 보안 설정을 읽을 수 있었다 결국합니다. 같은 py 유틸리티 sudo tccutil --list( github.com/jacobsalmela/tccutil )
WallTearer

0

SIP는 라이브러리 디렉토리를 지원하지 않습니다. 따라서 일부 명령으로 터미널을 통해 TCC.db 파일에 여전히 쓸 수 있음을 의미합니다.

링크는 다음과 같습니다. SIP 정보


TCC.db 파일은 디렉토리가 아닌 경우에도 SIP로 보호됩니다. 상관없이 상관 없습니다 . 응용 프로그램을 허용 목록으로 만들 수 있는 명령 을 알고 싶습니다 .
Wowfunhappy 2009 년

apple.stackexchange.com/questions/362865/... 쿼리 도움이 될이 링크를
Coder123
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.