อะไรทำให้ OS X ทำเครื่องหมายโฟลเดอร์เป็นกักกัน?


35

ฉันมีโฟลเดอร์ที่อยู่ภายใต้~/Sitesเราเรียกมันว่าFooซึ่งฉันแชร์ไซต์ Wordpress ที่กำลังพัฒนาผ่าน Apache นี่ทำงานได้ดีฉันจะจับคู่foo.localกับ127.0.0.1ไฟล์โฮสต์ของฉันและเข้าถึงไซต์จากที่นั่นบนแล็ปท็อปของฉัน

จากนั้นฉันพยายามเข้าถึงไซต์จาก iPhone ของฉัน ฉันสามารถดูดัชนีรูทของ~/Sitesจากโทรศัพท์โดยการท่องไปmy-computers-hostname.localแต่ไม่สามารถเข้าถึงไซต์ Wordpress ได้เนื่องจากมีการตั้งค่าให้เชื่อว่าที่อยู่ของมันอยู่foo.localและดังนั้นจึงมีการอ้างอิง hardcoded ไปยัง URL นั้นในฐานข้อมูล เมื่อฉันพยายามเปลี่ยนการตั้งค่า URL เป็นmy-computers-hostname.localสิ่งที่แปลกมากเกิดขึ้น: ฉันได้รับข้อผิดพลาดในการให้สิทธิ์เมื่อพยายามบันทึกการเปลี่ยนแปลง จากจุดนั้นไปข้างหน้าโฟลเดอร์ทั้งหมดที่มีไซต์ Wordpress หายไปจากหน้าดัชนีที่foo.local/ my-computers-hostname.localและความพยายามในการเข้าถึงโดย URL จะพบกับข้อผิดพลาด 403 - การอนุญาตการอนุมัติจากเว็บเซิร์ฟเวอร์

การแสดงโฟลเดอร์ที่มีปัญหาในเทอร์มินัลแสดงให้ฉันเห็นว่าแอcom.apple.quarantineททริบิวต์แบบขยายได้ถูกนำไปใช้กับมันและกับไฟล์ทั้งหมดที่อยู่ภายใน อะไรจะทำให้ระบบปฏิบัติการกักกันโฟลเดอร์ มันเป็นความพยายามในการเข้าถึงจากเครื่องอื่นหรือสิ่งที่ต้องทำกับการกำหนดค่าของ Wordpress หรือไม่?

คำตอบ:


43

com.apple.quarantineคุณลักษณะเพิ่มเติมอาจจะมีอะไรจะทำอย่างไรกับปัญหาที่คุณมีกับอาปาเช่ เป็นส่วนหนึ่งของคุณสมบัติการกักกันไฟล์ที่ถูกเพิ่มใน 10.5 :

การกักกันไฟล์เป็นคุณสมบัติใหม่ใน Leopard ที่ออกแบบมาเพื่อปกป้องผู้ใช้จากการโจมตีของโทรจัน อนุญาตให้แอปพลิเคชันที่ดาวน์โหลดเนื้อหาไฟล์จากอินเทอร์เน็ตวางไฟล์ใน“ การกักกัน” เพื่อระบุว่าไฟล์นั้นอาจมาจากแหล่งที่ไม่น่าเชื่อถือ แอปพลิเคชันกักกันไฟล์โดยการกำหนดค่าให้กับคุณสมบัติกักกันอย่างน้อยหนึ่งอย่างที่เก็บข้อมูลเกี่ยวกับเวลาและที่มาของไฟล์

เมื่อ Launch Services API ถูกใช้เพื่อเปิดไฟล์ที่ถูกกักกันและไฟล์นั้นดูเหมือนว่าเป็นแอปพลิเคชั่น, สคริปต์หรือประเภทไฟล์ที่ปฏิบัติการได้อื่น ๆ Launch Services จะแสดงการแจ้งเตือนเพื่อยืนยันว่าผู้ใช้เข้าใจว่าไฟล์เป็นแอปพลิเคชั่นชนิดใด

com.apple.quarantineคุณลักษณะเพิ่มเติมสามารถเพิ่มเมื่อ:

  • คุณดาวน์โหลดไฟล์ด้วยแอปพลิเคชั่นที่ต้องรับการกักกันเช่น Safari, Chrome หรือ Transmission สำหรับการใช้งานไม่กี่เช่น Firefox /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/Exceptions.plistกักกันถูกบังคับให้ต้องเปิดใช้งานใน
  • คุณแยกเก็บถาวรด้วยการประยุกต์ใช้เช่นเอกสารเก่ายูทิลิตี้หรือ OS X ฯหรือtarzip
  • คุณสร้างไฟล์ที่มีแอพลิเคชันที่มีการตั้งค่าเป็นจริงในLSFileQuarantineEnabledInfo.plist

แอ็ตทริบิวต์ส่วนขยายมีฟิลด์สำหรับสถานะการกักกันเวลาประทับตัวแทนที่สร้างเหตุการณ์กักกันและบางครั้งเป็น UUID:

$ xattr -p com.apple.quarantine Worksheet_v10.4.pdf
0042;51ea420b;Safari.app;5E2F48EA-1356-4D57-BFEA-571EE8ADC08C
$ date -r 0x51ea420b
Sat Jul 20 10:53:47 EEST 2013
$ sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2 .dump|grep 5E2F48EA-1356-4D57-BFEA-571EE8ADC08C
INSERT INTO "LSQuarantineEvent" VALUES('5E2F48EA-1356-4D57-BFEA-571EE8ADC08C',395999627.472166,'com.apple.Safari','Safari','http://images.apple.com/server/docs/Worksheet_v10.4.pdf',NULL,NULL,0,NULL,'http://images.apple.com/',NULL);

ฟิลด์แรกเป็นบิตฟิลด์เลขฐานสิบหกโดยปกติตัวอย่างเช่นบิตที่เจ็ด (2 ^ 6 หรือ 0x40) จะได้รับการตั้งค่าหลังจากที่คุณเปิดไฟล์เป็นครั้งแรก

คุณสามารถลบแอ็ตทริบิวต์ส่วนขยายด้วยxattr -dr com.apple.quarantine ~/Sitesแต่อาจไม่มีผลกับ Apache อย่างไรก็ตามจะปิดใช้งานกล่องโต้ตอบ "เป็นไฟล์ที่ดาวน์โหลดจากอินเทอร์เน็ต"


"option -r ไม่รู้จัก"
Jamie Ivanov

3
xattr -dr com.apple.quarantine <path>ได้ผล!
ปรสิต

การอ้างอิงสำหรับข้อมูลรายละเอียด: Discussions.apple.com/message/15507936#message15507936
parasrish

คุณสมบัติที่น่ารำคาญอย่างเหลือเชื่อฉันไม่เคยใช้มันเลย ขอบคุณสำหรับการอธิบาย
cjohansson

1
xattr -dr com.apple.quarantine <path>ให้ฉันoption -r not recognizedแต่xattr -d com.apple.quarantine <path>ทำงาน!
saulspatz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.