Få systemet att sluta tjata om nedladdade filer
En säkerhetsfunktion som introducerades i Mac OS X 10.5.1 gör att en dialogruta stoppar öppnandet av nedladdade filer. Inte alla filer, men i princip alla utom textfiler, pdf:er och bilder hindras. Så här blir du av med dialogrutan för utvalda filtyper.
Dialogrutor i onödan är inte bara irriterande, de hindrar också arbetet. I de allra flesta fall är även skriptfiler, som visserligen kan köras i terminalen, helt harmlösa att öppna via dubbelklick.
Resultatet av den här inställningen i systemet blir att om man laddat ner en trave php-filer och försöker att öppna allihop genom att antingen dubbelklicka eller dra dem till ett program, så öppnas endast en när man klickar ”Öppna” i dialogrutan. Om man däremot går inifrån programmet och väljer Arkiv -> Öppna så kommer inte dialogrutan upp.
Märkligt beteende
Att man får en varning vid dubbelklick kan möjligtvis försvaras i något sorts säkerhetssyfte, men att inte kunna dra-och-släppa filerna på ett program är helt enkelt bara ogenomtänkt beteende.
Som tur är går det att få OS X att bete sig som man förväntar sig med ganska små medel.
DownloadAssessment
Det som krävs är att man säger till systemet att vissa filtyper inte alls är farliga, utan harmlösa.
Börja med att skapa en fil i ~/Bibliotek/Preferences
som heter com.apple.DownloadAssessment.plist
och är kodad i utf-8. Ett bra val är att använda Subethaedit där man lätt kan ställa teckenkodningen.
Lägg till koden nedan för att tillåta php- och html-filer att öppnas utan att dialogrutan dyker upp och hindrar öppnandet.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>LSRiskCategorySafe</key>
<dict>
<key>LSRiskCategoryContentTypes</key>
<array>
<string>public.html</string>
<string>public.php-script</string>
</array>
</dict>
</dict>
</plist>
Vad betyder det här?
Det man sätter i LSRiskCategoryContentTypes
är uniform type identifiers (UTI) som är en beskrivning av vanligt förekommande filtyper. En lista på alla som finns definierade i systemet finns här. Det går att lägga till egendefinierade också utifrån den vanliga syntaxen för konstanter i Mac OS X. Vill man till exempel markera alla körbara program som ”safe” är konstanten com.apple.application
. Nu är UTI en ganska ny företeelse i Mac OS X (kom egentligen fullt utbyggt först i 10.5) och de är kopplade till specifika program, vilket gör att en konflikt kan uppstå om två program tilldelar en UTI var till en specifik filtyp.
Då kan man istället använda sig av antingen MIME-type eller filtillägg som konstant för filtypen. En MIME är vettig att använda för filer som laddas ner från nätet eftersom det är webbservern som bestämmer vilken MIME som ska skickas i HTTP-header. Att kontrollera vilken MIME en fil har är snabbt gjort via terminalen.
Kommandot är file -I
och sökvägen till filen i fråga. Dra-och-släpp filen på terminalfönstret för att få sökvägen utskriven.
Man anger MIME via en annan nyckel på följande sätt:
<key>LSRiskCategoryMIMETypes</key>
<array>
<string>text/html</string>
</array>
Vill man istället använda filtillägg så blir koden istället:
<key>LSRiskCategoryExtensions</key>
<array>
<string>html</string>
</array>
Man kan också lägga till filtyper som är kategoriserade som ”safe” i systemet till att inte vara tillförlitliga. Istället för nyckeln LSRiskCategorySafe
finns ytterligare tre stycken.
För filer som är harmlösa men inte ska öppnas direkt vid nedladdning i Safari (om den funktionen är igång) finns LSRiskCategoryNeutral
.
Filer som är körbara (någon typ av skript till exempel) kan läggas i LSRiskCategoryUnsafeExecutable
och kommer då att få varningsrutan om att filen kan vara ett program.
Slutligen finns LSRiskCategoryMayContainUnsafeExecutable
för packade filer som är körbara. Ibland packar man skripten med gzip men lägger en annan MIME och filtillägg på dem. I det läget kan Finder avgöra att filen kan vara körbar, och smälla upp dialogrutan.
Både LSRiskCategoryMayContainUnsafeExecutable
och LSRiskCategoryUnsafeExecutable
passar kanske bäst att använda om man är systemadministratör och vill lägga extra varningar för användarna av någon anledning.
Mycket av informationen i artikeln är hämtad från den här artikeln och den här på macosxhints. Även My Macinations har en artikel.