com.apple.quarantine에 대해 어떻게해야합니까?


90

나는 약간 다운로드 한 .jar인터넷에서 파일을 맥 OS X의에서이를 사용하고자하지만 OS 내가 "발견 될 때까지 확장 된 속성 com.apple.quarantine (이 전혀 표시로 태그 것 같습니다 @의" ls -lls -l@인터넷에서 다운로드했기 때문에 사용 방법을 알아 냈습니다 . 이것을 처리하는 올바른 방법은 무엇입니까?

답변:


63

이 속성은 다운로드 한 프로그램을 처음 실행할 때 사용자 확인을 요청하여 맬웨어를 중지 할 수 있도록 추가되었습니다. 확인되면 속성이 자동으로 제거 된 다음 프로그램이 정상적으로 실행됩니다.


아아 .. 알았어. 따라서 파일을 저장하는 브라우저 구현과 실행 파일을 실행할 때 OS 및 / 또는 Java 사이의 계약입니다.
Jason S

/ Applications로 드래그 할 때에도 열려 있지 않고 무한정 지속되는 것만 제외하고
Erik Aigner

83

당신은하지 않습니다 그것을 처리 할 수 있습니다. 그것을 열면 OS X이 허락을 요청할 것입니다. 또는 richard가 제안한 것처럼 다음을 사용하여 삭제하십시오.

xattr -d com.apple.quarantine my_jar.jar

다운로드 한 파일에 대해 자동으로이를 수행하려면 10.5의 macosxhints.com에 설명 된대로 '폴더 다운로드'경고 플래그를 제거하는 것처럼 폴더 조치를 다운로드 폴더에 첨부 할 수 있습니다 .

: 그리고 다음은 사파리, 오래 전에 macosxhints.com에 게시 된 10.5 다음 '다운로드 인터넷에서'파일 경고를 해제 , 하나는 제거 할 수 있습니다 주장 VerifiedDownloadPlugin.plugin에서 /Library/Internet Plug-Ins. 나는 그것을 테스트하지 않았다.

따로 : 때로는 Mac에서 단일 프로그램을 여러 번 시작해야하는 경우가 있습니다. 즉 사용하여 수행 할 수 있습니다 cd /Applications/some-application/다음에 open -n "Application Name.app". 이것은 실제로 .app접미사 가 필요합니다 . 실행 open -n "Application Name"하면 하나의 GateKeeper가 액세스를 중지시킬 수 있습니다.

"응용 프로그램 이름"은 알 수없는 개발자가 제공 한 것이므로 열 수 없습니다.

보안 환경 설정을 통해 Mac App Store 및 식별 된 개발자의 앱만 설치할 수 있습니다.

위의 확장 속성을 제거해도 com.apple.quarantine문제가 해결되지 않지만 .app접미사를 사용하면 정상적으로 작동합니다.

(나는 실제로 보안 조치를 제거하도록 조언하지 않습니다.)


1
이 같은 파일의 번호를 가지고 OS X가 ... 허가를 요청하지 않았다으로 수동에서 xattr를 제거해야했다
브라이언 Knoblauch을

1
@Brian, 마우스 오른쪽 단추로 클릭하지 않았으며 열기 메시지도 표시되지 않습니까? (때로는 OS X가 프롬프트를 표시하지만 계속할 수있는 옵션을 표시하지 않는 경우에 도움이됩니다.)
Arjan

1
프레임 워크에서 부적절한 (IMO) 대화를 시작하는 방법을 알아내는 것보다 xattr 주문에 감사드립니다.
Sue Spence

22
 xattr -d com.apple.quarantine /path/to/file

3
sudo필요 없을 때는 사용하지 마십시오 .
s4y

1
'sudo'를 제거하기 위해 답변을 편집했습니다.
Richard Hoskins

1
디렉토리의 모든 파일에 대해 어떻게 재귀 적으로 수행합니까?
Landon Kuhn

1
@ landon9720 - (현재) 답 아래는코멘트 는 제공된 디렉토리의 내용을 통해 반복적으로 작업에서 xattr을 지시 할 수 있습니다
user66001

2
find /path/to/dir -exec xattr -d com.apple.quarantine {} \;
sepehr

6

으로 경고를 영구적으로 비활성화 할 수 있습니다 defaults write com.apple.LaunchServices LSQuarantine -bool false. 또한 시스템 환경 설정의 아무 곳에서나 다운로드 한 응용 프로그램을 허용하지 않은 경우에도 게이트 키퍼 대화 상자를 비활성화합니다.


4

다음 명령을 찾았습니다

find Application.app | while read l; do echo $l; xattr -d com.apple.quarantine "$l"; done

속성을 제거하려고 할 때 매우 유용합니다. 큰 따옴표를 참고 $l하십시오. 앱 폴더에 이름에 공백이있는 파일이 있으면 따옴표 가 필요합니다.


9
당신은 또한 사용할 수 있습니다 xattr -rd com.apple.quarantine Application.app.
Lri

4
while ... 루프가 필요하지 않습니다. 모든 그것을 할 수 있습니다 찾을 수 있습니다 : "찾을 Application.app -print 간부에서 xattr -d com.apple.quarantine {} \;"
rivimey

"옵션 -r 인식되지 않음"
Jamie Ivanov

각 파일에 대해 새로운 프로세스를 생성 할 필요가 없으며, 파일이 처음에없는 경우 파일에서 xattribute를 제거하지 않아도됩니다.find . -xattrname com.apple.quarantine -print0 | xargs -0 xattr -d com.apple.quarantine
dland

이 모든 명령 행 예제는 앱이 포함 된 디렉토리에있을 때만 작동합니다. @dland find-exec기본을 가지고 있습니다. 원하는 전체 경로로 find /Applications -xattrname com.apple.quarantine -exec xattr -d com.apple.quarantine {} \; 대체 할 수 있습니다 /Applications. 예를 들어 /Users/jdoe/Downloads 파일이있는 디렉토리에있는 경우 파일 또는 앱 이름 은 xattr -d com.apple.quarantine <target>어디에 있습니까 <target>?
user2531336

0

xattr에는 재귀를위한 -r 플래그가 있습니다. 따라서 찾기 항목을 거치지 않아도됩니다. 또한 모든 플래그 (FinderInfo 포함)를 지우는 -c가 있습니다. 실제로 화를 내지 않는 한 항상 권장되는 것은 아닙니다. :-)


어 ... 어떤 질문에 대답하니?
Jason S

이 질문에 대한 다른 답변 ( superuser.com/a/126227/1162 )에 대해 직접 답변을 제공하는 대신 댓글을 달고있는 것 같습니다 .
Jason S
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.