com.apple.quarantineについてどうすればよいですか?


90

私はいくつかダウンロードした.jarインターネットからファイルを、およびMac OS Xの下でそれらを使用したいが、OSが、私は「気づいまで拡張属性com.apple.quarantine(本の表示なしでそれらをタグ付けしているようだ@で」ls -lと使用方法を考え出しましたls -l@)-インターネットからダウンロードされたためと思われます。これに対処する正しい方法は何ですか?

回答:


63

この属性は、ダウンロードされたプログラムが初めて実行されたときにユーザーの確認を求めて、マルウェアを阻止するために追加されます。確認すると、属性が自動的に削除され、プログラムが正常に実行されます。


ああ、それは理にかなっています。したがって、ファイルを保存するブラウザー実装と、実行可能ファイルを実行するときのOSやJavaとの間の契約です。
ジェイソンS

ただし、オープン時に削除されず、/ Applicationsにドラッグしても、無期限に持続するようです
Erik Aigner

83

あなたはそれに対処する必要はありません。それを開くと、OS Xは許可を求めます。またはリチャードが示唆したように、次のようなものを使用して削除します:

xattr -d com.apple.quarantine my_jar.jar

ダウンロードしたファイルに対してこれを自動的に行うには、10.5の macosxhints.comで説明されているように、「ダウンロードしたファイル」警告フラグを削除するように、フォルダーアクションをダウンロードフォルダーに添付できます。

また、Safariについては、ずっと前にmacosxhints.comに次の記事が投稿されました。10.5:「インターネットからダウンロードした」ファイルの警告を無効にし、から削除できると主張VerifiedDownloadPlugin.pluginしてい/Library/Internet Plug-Insます。私はそれをテストしませんでした。

余談ですが、Macで1つのプログラムを複数回起動する必要がある場合があります。それはを使用しcd /Applications/some-application/て行うことができますopen -n "Application Name.app"。これには本当に.app接尾辞が必要です。実行open -n "Application Name"すると、1つのGateKeeperがアクセスを停止する場合があります。

「アプリケーション名」は、身元不明の開発者によるものであるため開くことができません。

セキュリティ設定により、Mac App Storeおよび特定の開発者からのアプリのみをインストールできます。

上記では、拡張属性を削除してもそれcom.apple.quarantineは修正されませんが、.app接尾辞を使用しても問題ありません。

(私は実際にセキュリティ対策を取り除くようにだれにも勧めていません。)


1
私はこのようなファイルの数を持っており、OS Xが...許可を求めていなかったとして、手動れるxattrを削除しなければならなかった
ブライアンKnoblauch

1
@ブライアン、そして右クリックしましたが、開くこともプロンプトしませんか?(OS Xがプロンプトを表示しても、続行するオプションが表示されない場合に役立つことがあります。)
Arjan

1
xattr呪文のおかげで、フレームワーク上で不適切な(IMO)ダイアログをトリガーする方法を考え出すよりも面倒ではありません。
スー・スペンス

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

3
sudo必要がないときは使用しないでください。
s4y 2009

1
「sudo」を削除するように回答を編集しました。
リチャードホスキンズ

1
ディレクトリ内のすべてのファイルに対してこれをどのように再帰的に行いますか?
ランドンクーン

1
@ landon9720-(現在)以下の回答にはコメントがあり、xattrに指定されたディレクトリの内容を再帰的に処理するように指示できます
-user66001

2
find /path/to/dir -exec xattr -d com.apple.quarantine {} \;
9

6

警告を永続的に無効にできますdefaults write com.apple.LaunchServices LSQuarantine -bool false。また、システム環境設定のどこからでもアプリケーションのダウンロードを許可していない場合でも、ゲートキーパーのダイアログを無効にします。


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
リリー

4
while ...ループは必要ありません。findはそれをすべて実行できます:「Application.app -print -exec xattr -d com.apple.quarantine {} \;を
検索

「オプション-rが認識されない」
ジェイミーイワノフ

各ファイルに新しいプロセスを生成する必要はありません。また、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フラグが追加されました。そのため、検索機能を使用する必要はありません。また、すべてのフラグ(FinderInfoを含む)をクリアする-cがありますが、実際に怒っている場合を除き、常に推奨されるわけではありません。:-)


ええと...あなたはどの質問に答えていますか?
ジェイソンS

自分で回答するのではなく、この質問の別の回答(superuser.com/a/126227/1162)にコメントしているようです。
ジェイソンS
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.