[[:mac|{{ :Apple.png?40|}}]]
===== com.apple.quarantine =====
Jeder Mac OS ≥ 10.5.x Benutzer kennt das lästige Nachfragen des Finders, wenn eine aus dem Internet geladene Datei geöffnet wird:
{{ :mac:quarantine2.png }}
Verantwortlich hierfür ist das Attribut **com.apple.quarantine**. Für PowerUser eine lästige Angelegenheit, zumal etliche Pakete existieren, wo nicht nur das Paket als solches, quasi der Container, damit getaggt ist, sondern uU auch noch alle darin befindlichen Dateien. Aber die Attribute lassen sich anzeigen, setzen oder auch entfernen.
Dieser Artikel beschreibt das Entfernen dieser Nachfrage. Für weitere Informationen bzgl. der erweiterten Attribute lesen Sie bitte den Artikel: __**[[mac:xattr|-> HFS+ und die erweiterten Attribute]]**__
Das Vorhandensein von erweiterten Attributen lässt sich beim Aufruf des Befehlszeilenkommandos ls -l in einem Terminal überprüfen. Sind einer bestimmten Datei erweiterte Attribute zugewiesen, so wird dies durch ein @-Zeichen nach den Berechtigungen angezeigt (hier im Beispiel -rw-r–r–@):
$ ls -l Parachute.zip
-rw-r--r--@ 1 dtp staff 3603691 25 Nov 15:30 Parachute.zip
Mit den **ls**-Optionen **-l@** werden die zugewiesenen Attribute zusätzlich auch angezeigt:
$ ls -l@ Parachute.zip
-rw-r--r--@ 1 dtp staff 3603691 25 Nov 15:30 Parachute.zip
com.apple.quarantine 42
Mit dem Befehlszeilenkommando **xattr** lassen sich nun diese Attribute weiter bearbeiten. Die Option **-l** zeigt den Inhalt der Attribute an:
$ xattr -l Parachute.zip
com.apple.quarantine: 0000;4b0d3f7c;Firefox;|org.mozilla.firefox
Die Option **-d** löscht das angegebene Attribut der angegebenen Datei:
$ xattr -d com.apple.quarantine Parachute.zip
Noch die Kontrolle:
$ ls -l@ Parachute.zip
-rw-r--r-- 1 dtp staff 3603691 25 Nov 15:30 Parachute.zip
Eine Manpage (Hilfeseite) zu xattr existiert leider nicht aber über die Option **--help**, lässt sich zumindest eine Kurzreferenz aufrufen:
$ xattr --help
usage: xattr [-l] [-r] [-v] [-x] file [file ...]
xattr -p [-l] [-r] [-v] [-x] attr_name file [file ...]
xattr -w [-r] [-v] [-x] attr_name attr_value file [file ...]
xattr -d [-r] [-v] attr_name file [file ...]
The first form lists the names of all xattrs on the given file(s).
The second form (-p) prints the value of the xattr attr_name.
The third form (-w) sets the value of the xattr attr_name to the string attr_value.
The fourth form (-d) deletes the xattr attr_name.
options:
-h: print this help
-r: act recursively
-l: print long format (attr_name: attr_value and hex output has offsets and
ascii representation)
-v: also print filename (automatic with -r and with multiple files)
-x: attr_value is represented as a hex string for input and output
dtps-Mac-mini:Desktop dtp$
==== Das Entfernen automatisieren ====
Der ganze Terminal Zenober ist natürlich für den Alltag wenig praktikabel; das ganze sollte auch nur zur Veranschaulichung dienen und ein tieferes Verständnis dafür entwickeln, wie solche Aktionen vom Betriebssystem geregelt und abgehandelt werden. Der og Prozess lässt sich mit Apple Script und Ordneraktionen natürlich auch automatisieren.
Legen Sie dazu in >>/Users/[Benutzer]/Library<< das Verzeichnis >>Scripts<< und darin das Verzeichnis>>Folder Action Scripts<< an:
$ mkdir -p ~/Library/Scripts/Folder\ Action\ Scripts/
Des Weiteren starten wir den AppleScript Editor (Programme -> Dienstprogramme) und geben dort folgenden Code ein:
on adding folder items to thisFolder after receiving addedItems
repeat with anItem in addedItems
set anItem's contents to (quoted form of POSIX path of (anItem as alias))
end repeat
set AppleScript's text item delimiters to " "
do shell script "xattr -d com.apple.quarantine " & (addedItems as text)
end adding folder items to
Speichern Sie dieses Script unter einem beliebigen Namen (Ich habe **Remove Quarantine Flag** gewählt) in **/Benutzer/[Benutzernamen]/Library/Scripts/Folder Action Scripts** ab. Wählen Sie einen beliebigen Ordner aus; ich habe zB auf meinem Schreibtisch einen Ordner **Downloads** erstellt und diesen im Firefox als Default Download Verzeichnis konfiguriert. Öffnen Sie das Kontextmenü des Ordners (Rechtsklick bzw. CMD/STRG+Klick) und wählen den Menüpunkt **Ordneraktionen konfigurieren**. Im darauffolgenden Menü wählen Sie ihr zuvor angelegtes Apple Script an, dann noch die Checkbox **Ordneraktionen aktivieren** aktivieren und den Dialog verlassen. Jetzt läuft das AppleScript jedesmal, wenn eine Datei in dieses Verzeichnis geschoben wird und entfernt das eventuell vorhandene Quarantine Flag.\\ \\ --- //pronto 2009/11/25 20:11//
==== Die Abfrage per Systemeinstellung verhindern ====
Man kann die Abfrage auch mit einem Schalter in der com.apple.LaunchServices.plist unterdrücken:
$ defaults write com.apple.LaunchServices LSQuarantine -bool NO
Das generiert den Wert LSQuarantine in der ~/Library/Preferences/com.apple.LaunchServices.plist und setzt in auf disabled.\\ \\ --- //pronto 2010/05/24 16:42//
{{keywords>OSX defaults com.apple.quarantine extended attribut}}