WRT이 주제 com.apple.quarantine에 대해 어떻게해야합니까? OS X이 @ 필드에서 이러한 정보를 배우고 저장하는 방법을 알고 싶습니다. 이 기능을 비활성화하는 방법이 아니라이 구현에 관한 코드 (또는 의사 코드, 아이디어 등)를 찾고 있습니다. 미리 감사드립니다.
WRT이 주제 com.apple.quarantine에 대해 어떻게해야합니까? OS X이 @ 필드에서 이러한 정보를 배우고 저장하는 방법을 알고 싶습니다. 이 기능을 비활성화하는 방법이 아니라이 구현에 관한 코드 (또는 의사 코드, 아이디어 등)를 찾고 있습니다. 미리 감사드립니다.
답변:
Daniel이 언급했듯이 브라우저는 확장 된 속성에 다운로드 한 파일의 소스 URL (및 리퍼러)을 저장할 수 있습니다 com.apple.metadata:kMDItemWhereFroms
.
먼저 Apple은 이것을 Mac OS X 10.4 용 Safari에 추가 한 다음 Chrome / Chromium [Issue 22289] 에 추가했으며 Firefox에 추가하라는 뛰어난 개선 요청이 있습니다 [버그 337051] .
이를 구현하는 실제 코드는 Chromium 패치를 확인하십시오 .
mdls
. 자동으로 시작되는 다운로드에 대해 표시됩니다. Finder의 Get Info는 쉼표로 구분 된 목록으로 표시합니다.
파일을 다운로드 한 후 실행 xattr file
하면 브라우저가 확장 속성에 저장 한 내용이 표시됩니다.
xattr mydownload.gz com.apple.metadata : kMDItemWhereFroms com.apple.quarantine
다음으로 자세한 내용 :
xattr -p com.apple.quarantine mydownload.gz 0000; 4cee9d4b; 사파리; 24064D6B-9854-46BC-AF73-5DE5F8042D0B | com.apple.Safari xattr -p com.apple.metadata : kMDItemWhereFroms mydownload.gz 62 70 6C 69 73 74 30 30 A1 01 5F 10 24 68 74 74 70 3A 2F 2F 73 75 등
... 또는 읽을 수있는 형식으로 :
mdls-이름 kMDItemWhereFroms mydownload.gz kMDItemWhereFroms = ( "http : // some-url" )
그 (또는 원하는 속성)도 직접 설정할 수 있습니다 .
xattr -w 일부 이름 일부 값 mydownload.gz
다음은 비록 너무 작동 위의 명령을 다시 실행 다른 결과를 가지고 있습니다 :
xattr -w com.apple.metadata : kMDItemWhereFroms http://example.com mydownload.gz
그리고에 대한 com.apple.quarantine
속성에 따라 이해 :
일반적으로 검역소 데이터는 4 개의 세미콜론으로 구분 된 값 세트 (알 수없는 목적의 십진 자릿수-일반적으로 0000, 8 자 불투명 한 ID , 검역소에 보관 된 파일을 만든 응용 프로그램 이름 및 응용 프로그램의 UTI)로 구성됩니다. 파이프 기호가 접두사로 표시되는 (Uniform Type Identifier)
예를 들어, Mozilla FireFox를 사용하여 다운로드 한 두 개의 다른 파일의 경우 다음과 같습니다.
com.apple.quarantine: 0000;4b392bb2;Firefox;|org.mozilla.firefox com.apple.quarantine: 0000;4b38d820;Firefox;|org.mozilla.firefox
Automator 's Folder Actions를 사용하면 특정 폴더에서 새 파일에 대해 이러한 명령을 실행할 수 있습니다.
이 정보는 "확장 된 속성"에 저장됩니다. John Siracusa는 OS X 10.4에서 http://arstechnica.com/apple/reviews/2005/04/macosx-10-4.ars/7 에서 처음 도입되었을 때 확장 된 속성에 대해 설명하는 훌륭한 기사를 가지고 있습니다.
더 이상 'xattr'명령 행 도구에 대한 매뉴얼 페이지가 없지만 'xattr -h'는 기본 도움말을 표시해야합니다.
POSIX / BSD 레벨 API는 /usr/include/sys/xattr.h에 있으며 getxattr (), setxattr (), removexattr (), listxattr () 및 FILE 기반 사촌과 같은 C 함수를 정의합니다. (이 명령은 'xattr (1)'과 달리 매뉴얼 페이지가 있습니다).
파일을 다운로드하는 응용 프로그램에서 설정합니다. 매직 다운로드 감지 기능이 없으며 다운로드 응용 프로그램에서 다운로드 한 파일에 설정된 속성 만 있습니다.
방금 wget
, Google Chrome, Firefox 및 Safari를 사용하여 zip 파일을 다운로드 했으며 예상대로 wget
다운로드에는 해당 기능을 알고 있으므로 브라우저 속성이 확장 속성이 없습니다. 흥미롭게도 Firefox 다운로드는 격리를 설정했지만 com.apple.metadata:kMDItemWhereFroms
다운로드 한 파일이 원래 있던 정보 (URL) 를 설정하는 것을 잊었습니다 . Safari와 Chrome은 둘 다 설정 wget
하지 않습니다.