ฉันควรทำอย่างไรเกี่ยวกับ com.apple.quarantine


90

ฉันดาวน์โหลด.jarไฟล์บางไฟล์จากอินเทอร์เน็ตและต้องการใช้งานภายใต้ Mac OS X แต่ดูเหมือนว่า OS จะติดแท็กไฟล์เหล่านั้นด้วยคุณสมบัติเพิ่มเติม com.apple.quarantine (ไม่มีข้อบ่งชี้เกี่ยวกับเรื่องนี้จนกว่าฉันจะสังเกตเห็น " @" ในls -lและ ค้นหาวิธีใช้ls -l@) - เห็นได้ชัดว่ามีการดาวน์โหลดมาจากอินเทอร์เน็ต วิธีที่ถูกต้องในการจัดการกับสิ่งนี้คืออะไร?

คำตอบ:


63

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


ahhhhhh .... ตกลงที่เหมาะสม ดังนั้นจึงเป็นสัญญาระหว่างการใช้งานเบราว์เซอร์ที่บันทึกไฟล์และระบบปฏิบัติการและ / หรือ Java เมื่อรันไฟล์ปฏิบัติการ
46499 Jason S

ยกเว้นว่ามันจะไม่ถูกลบออกเมื่อเปิดและดูเหมือนว่าจะยังคงอยู่อย่างไม่มีกำหนดแม้เมื่อลากไปที่ / Applications
Erik Aigner

83

คุณไม่ต้องจัดการกับมัน เปิดและ OS X จะขออนุญาตจากคุณ หรือเหมือนที่ริชาร์ดแนะนำให้ลบออกโดยใช้สิ่งที่ชอบ:

xattr -d com.apple.quarantine my_jar.jar

การทำเช่นนี้โดยอัตโนมัติสำหรับไฟล์ที่ดาวน์โหลดใด ๆ ที่คุณสามารถแนบกระทำโฟลเดอร์ไปยังโฟลเดอร์ดาวน์โหลดเช่นอธิบายใน macosxhints.com ใน10.5: เอา 'ไฟล์ที่ดาวน์โหลด' ธงเตือน

และต่อไปนี้ถูกโพสต์บน macosxhints.com เป็นเวลานานแล้วสำหรับ Safari: 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
ฉันมีไฟล์จำนวนมากเช่นนี้และต้องลบ xattr ด้วยตนเองเนื่องจาก OS X ไม่ได้ขออนุญาต ...
Brian Knoblauch

1
@Brian และคลิกขวาแล้วเปิดไม่พร้อมใช่ไหม (บางครั้งก็ช่วยได้หาก OS X แสดงพรอมต์ แต่ไม่แสดงตัวเลือกให้ดำเนินการต่อ)
Arjan

1
ขอบคุณสำหรับคาถา xattr ให้รำคาญน้อยกว่าการหาวิธีที่จะทำให้เกิดการสนทนาที่ไม่เหมาะสม (IMO) บนกรอบ
Sue Spence

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

3
อย่าใช้sudoเมื่อคุณไม่จำเป็นต้อง
s4y

1
แก้ไขคำตอบเพื่อลบ 'sudo'
Richard Hoskins

1
คุณจะทำสิ่งนี้ซ้ำกับไฟล์ทั้งหมดในไดเรกทอรีได้อย่างไร?
แลนดอนคุห์น

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คุณสามารถปิดการใช้งานคำเตือนอย่างถาวรด้วย นอกจากนี้ยังปิดใช้งานกล่องโต้ตอบ Gatekeeper แม้ว่าคุณจะไม่ได้รับอนุญาตให้ดาวน์โหลดแอปพลิเคชันจากที่ใดก็ได้ในการตั้งค่าระบบ


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
คุณไม่ต้องการห่วง ... ค้นหาสามารถทำได้ทั้งหมด: "find Application.app - พิมพ์ -exec xattr -d com.apple.quarantine {} \;"
rivimey

"option -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 เพื่อเรียกคืน ดังนั้นคุณไม่ต้องผ่านการค้นหาสิ่งนั้น นอกจากนี้ยังมี -c ที่จะล้างค่าสถานะทั้งหมด (รวมถึง FinderInfo) ซึ่งไม่แนะนำเสมอเว้นแต่คุณจะคลั่งไคล้จริง ๆ :-)


เอ่อ ... คุณตอบคำถามอะไร
Jason S

ดูเหมือนว่าคุณกำลังแสดงความคิดเห็นกับคำตอบอื่นในคำถามนี้ ( superuser.com/a/126227/1162 ) แทนที่จะให้คำตอบด้วยตัวคุณเอง
Jason S
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.