私はインターネットからいくつかの.jar
ファイルをダウンロードし、それらをMac OS Xの下で使用したいと思っています。 @
の中の "ls -l
"とls -l@
)の使い方を考え出しました - どうやら彼らはインターネットからダウンロードされているからです。これに対処する正しい方法は何ですか?
この属性は、マルウェアを阻止するために、ダウンロードしたプログラムが最初に実行されたときにユーザーに確認を求めることができるように追加されています。確認すると、属性は自動的に削除され、その後プログラムは正常に実行されます。
対処するためにを持っていません。それを開くと、OS Xはあなたの許可を求めます。またはrichardが示唆しているように、次のようなものを使ってそれを削除します。
xattr -d com.Apple.quarantine my_jar.jar
ダウンロードしたファイルに対して自動的にこれを行うには、macosxhints.comの 10.5:「ダウンロードしたファイル」警告フラグを削除する のように、ダウンロードフォルダにフォルダアクションを添付できます。
そして、以下はSafariのために、ずっと前にmacosxhints.comに投稿されました。 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
接尾辞を使用しても問題なく動作します。
(私は誰もが実際にセキュリティ対策を取り除くことをお勧めしていません。)
xattr -d com.Apple.quarantine /path/to/file
defaults write com.Apple.LaunchServices LSQuarantine -bool false
を使って警告を永久に無効にすることができます。システム環境設定のどこからでもアプリケーションのダウンロードを許可していない場合でも、Gatekeeperのダイアログは無効になります。
次のコマンドが見つかりました
find Application.app | while read l; do echo $l; xattr -d com.Apple.quarantine "$l"; done
属性を取り除こうとするときに非常に役に立ちます。 $l
を囲む二重引用符に注意してください - アプリフォルダに名前に空白のファイルが含まれている場合はそれらが必要です。
xattrは再帰的に-rフラグを持つようになりました。だからあなたはものを見つけることを通過する必要はありません。また、(FinderInfoを含む)すべてのフラグをクリアする-cがあります。本当に気が狂っていない限り、常に推奨されるわけではありません。 :-)