macOS Mojaveではユーザーのデータや個人情報を保護するための機能がさらに強化されました。例えばアプリがファイルシステム全体にアクセスするために必要な権限として「フルディスクアクセス」が追加されるなど、セキュリティ機能が改良されています。
フルディスクアクセスを必要とするアプリは一般にバックアップツールなどですが、ターミナルアプリの「iTerm2」もその中の一つで、v3.2.4以降では起動時にフルディスクアクセスの設定を案内するダイアログが表示されるようになっています。
今回はiTerm2でフルディスクアクセスが必要な理由、およびその設定方法を説明します。
iTerm2でフルディスクアクセスが必要な理由
iTerm2でフルディスクアクセスが必要な理由は、公式ドキュメントの「Why Full Disk Access is Useful for iTerm2」にて説明されています。
このドキュメントによると、フルディスクアクセスを設定しない場合、例えば「crontab -e」が失敗するそうで、これはテンポラリファイル「/var/at/tmp/tmp.processid」が「/var/at/tmp」フォルダが保護されているため書き出せない事に原因があるそうです。
直接ファイルを作成しようと試みても失敗します。
% sudo bash Password: # cd /private/var/at/tmp # echo hello > hello.txt hello.txt: Operation not permitted
他にも「~/Library/Safari」や「~/Pictures」「~/Library/Address Book」「~/Library/Calendars」といったフォルダが保護されていて、iTerm2にフルディスクアクセスを許可しなとアクセスできず、例えばtarのバックアップなどが失敗するようです。
これらの保護されたフォルダにiTerm2からこれまで通りアクセスするためには、フルディスクアクセスを許可する必要があるというわけです。
iTerm2でフルディスクアクセスを許可する方法
iTerm2でフルディスクアクセスを許可する方法は公式ドキュメントの「Full Disk Access」にて詳細に解説されています。
以下の手順で実行します。
- システム環境設定で「セキュリティとプライバシー」を開く
- 「プライバシータブ」を選び、一番下にある「フルディスクアクセス」を選択
- カギのアイコンをクリックしてパスワードを入力し、右側の+アイコンをクリックしてアプリケーションフォルダに存在する「iTerm.app」を追加する
案内に従いiTerm2を再起動するとフルディスクアクセスが可能となっています。
まとめ
iTerm2をmacOS Mojave上でこれまでと同様の感覚で使用したい場合、フルディスクアクセスを許可します。
一方標準のターミナルの場合、保護されたフォルダにアクセスすると、以下のようなダイアログが表示され、許可すればそのまま処理を続行できるようです。
このAPIが非公開らしく、iTerm2では同じ事が実現できていないそうですが、情報が公開されればiTerm2でも同様な機能が実現されるのかもしれません。