DocBit Notes チュートリアル

macOSのxattrコマンドでBinanceクライアントの隔離属性を解除する手順

ブラウザからダウンロードしたBinanceの .dmg ファイルをダブルクリックしてマウントし、アプリを起動しようとすると、macOSで「開発元が未確認のため、Binance.app を開けません」という警告が頻繁に表示されます。原因は、Gatekeeperがファイルに隔離マーク(Quarantine)を付けているためです。システム設定で「このまま開く」をクリックする以外にも、コマンドラインの xattr ツールを使用して解決することができます。本記事ではその使い方を明確に解説します。クライアントのダウンロードはまず Binance公式サイト または Binance公式アプリ へアクセスしてください。iPhoneへのインストールは iOSインストールチュートリアル をご覧ください。

隔離属性とは何か

macOSにおける「com.apple.quarantine」はファイル拡張属性(xattr)の一種であり、ブラウザやメールアプリがファイルをダウンロードする際に自動的に追加されます。これはGatekeeperに対して「このファイルはインターネットからダウンロードされたものであり、初回起動時には厳格なチェックが必要である」と伝えます。

ファイルの署名が検証され、Appleによって公証されている場合、Gatekeeperはユーザーに一度確認を求めた後、実行を許可します。署名がない、または検証に失敗した場合、実行は直接拒否されます。

Binance macOSアプリの署名状況

BinanceのmacOSクライアントにはDeveloper ID署名があり、Appleの公証も受けているため、理論上Gatekeeperは正常に開くことを許可するはずです。しかし、以下のような状況では依然としてブロックされることがあります:

  • macOS 13以降で「アプリケーションはシステム設定で明示的に許可する必要がある」というより厳格なポリシーが有効になっている場合
  • 特定の環境でDMGファイルを転送した際に署名情報が失われた場合
  • ユーザーがApple系以外のブラウザ(BraveやFirefoxなど)でダウンロードした場合、Gatekeeperの処理プロセスがわずかに異なるため

これらの状況では、xattrコマンドが代替手段となります。

システム設定で許可する(推奨)

最も安全な対処手順は、コマンドラインを使用しない方法です:

  1. Binanceアプリをダブルクリックし、「開けません」というダイアログを確認する
  2. 「ゴミ箱に入れる」はクリックせず、「キャンセル」をクリックする
  3. 「システム設定」 → 「プライバシーとセキュリティ」を開く
  4. 一番下までスクロールし、「Binance.appの使用がブロックされました」という表示を確認する
  5. その横にある「このまま開く」をクリックする
  6. 確認のポップアップが表示されるので、ユーザーパスワードを入力する
  7. その後はアプリをダブルクリックするだけで直接起動できます

この方法がAppleによって最も推奨されており、最も安全です。

xattrコマンドを使用する方法

コマンドラインに慣れている場合は、xattrを使用して1ステップで隔離属性を削除できます:

  1. ターミナルを開く(アプリケーション → ユーティリティ → ターミナル)
  2. コマンドを入力する(具体的には xattr -d com.apple.quarantine の後にアプリの完全なパスを続けます。例:/Applications/Binance.app
  3. Enterキーを押して実行する
  4. コマンドが成功した場合、何も出力されません
  5. アプリをダブルクリックすれば正常に起動します

操作のポイント:

  • アプリのパスは完全に記述する必要があります。Finderからターミナルにドラッグ&ドロップすると自動入力されます
  • アプリがユーザーディレクトリではなくアプリケーション(Applications)フォルダにある場合、sudo権限が必要になることがあります
  • コマンド自体がファイルを破損させることはありません

コマンドの応用的な使い方

xattrは他にもいくつかの関連する操作を行えます:

  • ファイルにどのような拡張属性があるかを確認する
  • ディレクトリ内のすべてのファイルの隔離マークを再帰的に削除する
  • ファイルにカスタム拡張属性を追加する

一般ユーザーは隔離マークの削除さえできれば十分であり、その他の使い方は主に開発者向けです。

操作のリスク

隔離属性を削除することの副作用:

  • Gatekeeperの「初回起動時の確認」プロセスをスキップしてしまう
  • 「開発元は...」というポップアップのプロンプトが表示されなくなる
  • ユーザーが署名情報を確認するように誘導されなくなる

肯定的な影響:

  • ファイルを破損しない
  • アプリのその後のアップデートに影響しない
  • デジタル署名の検証に影響しない(署名は依然として有効)

もしアプリの出所が信頼できる(Binance公式サイトからダウンロードした)と100%確信できるなら、xattrを使用してもリスクはありません。出所が不明な場合は、xattrを使って無理に開かないでください

xattrが適用できないケース

xattrは「開発元が未確認」という警告のみを処理できます。以下のケースには対応できません:

  • macOSの起動セキュリティポリシーが、未署名のカーネル拡張機能をブロックした場合
  • ユーザーアカウントに管理者権限がない場合
  • ファイル自体が破損している場合(隔離属性だけの問題ではない)
  • macOS 13以降の「セキュリティポリシーの引き下げ」により、再起動してリカバリーモードに入るよう求められる場合

これらの状況では、別の方法で解決する必要があります。

SIPとxattrの関係

System Integrity Protection(SIP)はAppleのシステムレベルの保護機能であり、rootユーザーであっても特定のディレクトリを変更できないように制限します。xattrとSIPは別々のメカニズムです:

  • xattrはファイルのメタデータを変更する(ユーザー権限の範囲内)
  • SIPはシステムディレクトリと署名検証インフラを保護する

一般ユーザーはSIPを無効にしないでください。より大きなリスクをもたらす可能性があります。

コマンドのエイリアスと簡略化

xattrを頻繁に使用するユーザーは、~/.zshrcにエイリアス(alias)を設定できます。例えば、「unquar」を隔離属性削除のxattrコマンドのエイリアスにすることができます。ただし、以下の点に注意してください:

  • エイリアスは現在のユーザーのシェルに対してのみ有効です
  • sudoで実行する場合、エイリアスは機能しません(完全なコマンドを記述する必要があります)

操作でエラーが出た場合の対処

エラーメッセージ 対処法
Operation not permitted sudoを追加して再試行する
No such xattr ファイルに元々隔離マークがないため、操作は不要
No such file パスの記述ミス
Permission denied ファイル権限の問題、chownで修正する

長期的な推奨事項

最も安定しているのは、システム設定 → プライバシーとセキュリティから行う方法です。理由は以下の通りです:

  • 操作が直感的で、コマンドを覚える必要がない
  • Appleが将来的にxattrによる特定の保護属性の変更を制限する可能性がある
  • 誤操作のリスクが低い

xattrは、偶発的な特殊ケースでのみ使用してください。

FAQ

Q:xattrの操作により、Binanceの自動更新機能が失われますか? A:いいえ。自動更新はアプリ内のロジックで実行されるため、隔離属性とは無関係です。

Q:Binanceをアップデートした後、再度xattrを実行する必要がありますか? A:通常は必要ありません。アプリ内でのアップデートでは、隔離マークが再付与されることはありません。

Q:Applications(アプリケーションフォルダ)内のすべてのアプリを一括処理できますか? A:技術的には可能ですが、出所が確実なアプリのみを処理することをお勧めします。

Q:どのブラウザでダウンロードすると隔離属性が付きますか? A:Safari、Chrome、Firefox、Edge、Braveなど、ほぼすべての主要なブラウザで追加されます。

関連記事