強火で進め

このブログではプログラム関連の記事を中心に書いてます。

ネットからダウンロードしたファイルを開く時の警告表示を消す方法


Macでネットからダウンロードしたファイルを開く時には初回にのみこの様なの警告が表示されます。

この表示を消す方法としてはこちらのサイトで紹介されている様な方法が有ります。

Macにダウンロードしたファイルを開く時の「警告ダイアログ」を無効化する裏技 / Inforati
http://inforati.jp/apple/mac-tips-techniques/system-hints/how-to-disable-download-file-alert-of-mac-finder.html

しかし、この方法はここでもしっかりと書かれてる様に以下の様な問題点があります。

今回の裏技は上級者用です。セキュリティ上の警告を無効化する裏技ですので、リスクを理解していない限りは行わないでください。行う時は自己責任でお願いします。

恐らくこの機能はユーザが気づかないうちにネットからDLしたファイル(もしくはDLしたのを忘れる位昔にネットからDLしたファイルなど)を安易に解凍や実行するのを防ぐ、セキュリティ面から追加された機能だと思われます。なるべくならONにして置いたままの方が良いでしょう。

とは言ってもDLしたファイルを解凍した時に生成された全てファイルで開こうとした時にこの警告が表示されるとかなり心が折れそうになります。

という事で解凍後のファイル向けにシェルスクリプトで「指定されたフォルダ内の全てのファイルについてこの警告をOFFにするプログラム」を作成する事にしました。

調査

まずは調査。この警告が表示されるファイルは ls -al を実行した時にこの様にパーミッションの所の最後に @ が付くみたいです。

警告が出ない様に変更するには xattr コマンドを使って以下の様にするとOKみたいです。

xattr -d com.apple.quarantine ここにファイル名

この様なコマンドを実行したところ ls -al した時に @ が表示されなくり、またFinderから開いても警告が表示されませんでした。この方法で行けそうです。

プログラム作成

と言う事で、この調査を元に作成したスクリプトがこちら。引数にファイルやフォルダを受けそれらの自身やその中のファイルやフォルダもまとめて警告表示がされない様に変更します。

IFS="
"
for f in "$@"
do
	for f2 in `find "$f"`
	do
		xattr -d com.apple.quarantine "$f2"
	done
done

Macの実行プログラムとして使いたい方はこちらのページを参考に実行プログラム化して下さい。

シェルスクリプトを簡単にMacの実行ファイルにする方法 - 強火で進め
http://d.hatena.ne.jp/nakamura001/20101229/1293605644

もちろん、このプログラムも何の考えも無しにどんどん使ってはセキュリティ面で意味が無い事になってしまいます。しっかりと自分の意志でDLしたファイルで間違い無い事を確認した上で使うようにしましょう。

【参考】

osx - What should I do about com.apple.quarantine? - Super User
http://superuser.com/questions/28384/what-should-i-do-about-com-apple-quarantine

Macでlsした時のパーミッションにあるアットマークを消す。xattrコマンド。 - kanonjiの日記
http://d.hatena.ne.jp/kanonji/20100912/1284292517

【コラム】OS X ハッキング! (253) Leopard解体新書(4) 〜拡張された拡張属性〜 | パソコン | マイコミジャーナル
http://journal.mycom.co.jp/column/osx/253/index.html

ダウンロードしてきたファイルを初めて開く時の警告ダイアログを表示させないようにする | Macの手書き説明書
http://veadardiary.blog29.fc2.com/blog-entry-1550.html

Mac OS X v10.5 および v10.6 のファイルの隔離について
http://support.apple.com/kb/HT3662?viewlocale=ja_JP