Hacker News오픈소스 · 도구

macOS 로컬 네트워크 접근 허용 창을 자동으로 차단하는 도구

원제 Show HN: Auto Dismiss Mac OS "Allow <app> to find devices on local networks?"

105 포인트댓글 79
Key Point

macOS 앱들이 로컬 네트워크 접근 허용 창을 반복해서 표시하는 문제를 자동으로 해결하되, 정당한 사용 사례에서는 선택적으로 허용할 수 있는 방법을 제시한다.

핵심 요약

  • dontallow는 macOS Sequoia 이상에서 앱이 로컬 네트워크 접근을 요청할 때마다 나타나는 "Allow to find devices on local networks?" 대화창을 자동으로 '차단'(Don't Allow) 버튼을 누르는 Swift 기반 도구다.
  • Chrome, Brave, Edge 등 일부 브라우저는 실행할 때마다 임시 폴더로 앱 번들을 복사하는데, macOS가 이를 다른 앱으로 인식하면서 매번 같은 프롬프트를 표시하는 문제가 발생한다.
  • 버전 경로를 포함한 앱들(/versions/1.2.3/)도 업데이트마다 새로운 권한 행(row)이 생기고, 실행 중이지 않은 앱의 프롬프트가 잘못된 앱에 첨부되는 등의 문제가 있다.
  • Chromecast 발견, AirPlay, LAN 멀티플레이, 프린터/스캐너 유틸리티 등 일부 앱은 로컬 네트워크 접근이 정당하며, 이 경우 수동으로 '허용'을 선택하거나 allowlist에 추가할 수 있다.
  • dontallow install로 설치하면 사용자 단위 launchd 에이전트를 생성하고, System Settings > Privacy & Security > Accessibility 권한 부여 후 자동으로 작동한다.
  • dontallow pause로 10분~1일 등 일시적으로 프롬프트 차단을 멈출 수 있고, ~/.config/dontallow/allowlist 파일에 앱 이름을 추가하면 해당 앱 프롬프트는 건드리지 않는다.
  • 내부적으로 UserNotificationCenter 시스템 프로세스의 접근성 옵저버로 창 생성을 감시하다가 로컬 네트워크 프롬프트임을 확인 후 'Don't Allow' 버튼을 자동으로 누르거나 합성 클릭으로 대체한다.
  • Swift 파일 2개로 이루어졌고 의존성이 없으며, 유휴 상태에서 CPU를 소비하지 않고, 재부팅 후에도 유지된다.
  • 명령줄 도구로는 dontallow status(상태 확인), dontallow rules(시스템 권한 규칙 해석), dontallow uninstall(제거), dontallow run --dry-run(시뮬레이션) 등이 있고, 각 차단 시 알림을 표시한다.
  • Apple Silicon과 Intel 모두 지원하며, Command Line Tools만으로 빌드 가능하고(Xcode 불필요), 현재 영어 로컬라이제이션만 지원한다.
  • MDM 환경에서는 Developer ID로 서명 후 PPPC 프로필로 접근성 권한을 미리 부여하면 수동 설정 없이 배포할 수 있고, macOS 업그레이드 후에는 dontallow status로 권한 상태를 확인해야 한다.
  • MIT 라이선스로 공개되었으며, 단위 테스트는 순수 Swift 로직(대화 텍스트 파싱, 일시 중지 옵션, allowlist 매칭, launchd 설정 생성 등)을 swiftc로만 빌드해서 검증한다.
AI 요약 안내

AI가 한국어로 정리한 내용입니다. 정확한 정보는 원문을 확인해 주세요.

요약 원칙 ↗