※本ページにはプロモーション(広告)が含まれています
ターミナルで「Permission denied」または「操作は許可されていません」が表示される
Macのターミナルでコマンドやファイルにアクセスしようとすると「Permission denied」エラーが出る問題の原因と解決方法を解説します。
この記事でわかること
- Permission deniedエラーの主な原因
- ファイルのアクセス権限を確認する方法
- chmodコマンドで権限を変更する方法
- macOSのシステム整合性保護(SIP)について
- ターミナルにフルディスクアクセスを許可する方法
原因1:ファイルの権限設定が不正
実行しようとするファイルに実行権限がない場合にPermission deniedが発生します。
権限の確認と変更
- ターミナルで
ls -la ファイル名を実行して権限を確認する - 出力例:
-rw-r--r--→ 実行権限なし(最初の行) - 実行権限を付与:
chmod +x ファイル名を実行する - 確認:
ls -la ファイル名で-rwxr-xr-xになっていればOK
原因2:管理者権限が必要なファイルへのアクセス
システムファイルや他のユーザーのファイルにアクセスするには管理者(root)権限が必要です。
- コマンドの前に
sudoを付けて実行する - 例:
sudo nano /etc/hosts - 管理者パスワードを入力する
原因3:ターミナルのフルディスクアクセス権限が不足
macOS Catalina以降、特定のフォルダにアクセスするにはターミナルにフルディスクアクセス権限が必要です。
フルディスクアクセスの許可手順
- 「システム設定」→「プライバシーとセキュリティ」→「フルディスクアクセス」を開く
- 左下の「+」ボタンをクリックする
- 「/Applications/Utilities/Terminal.app」を選択して「開く」をクリックする
- ターミナルのリストへの追加を確認し、オンになっているか確認する
原因4:システム整合性保護(SIP)による制限
macOSのSIP(System Integrity Protection)が有効な場合、システムフォルダ(/System、/usr、/bin等)への書き込みが制限されます。これは意図的なセキュリティ機能です。
SIPは通常無効化するべきではありません。どうしても必要な場合はAppleのドキュメントを参照してください。
Permission deniedパターン別対処法
| エラーが出る場面 | 原因 | 対処 |
|---|---|---|
| スクリプト実行時 | 実行権限なし | chmod +x スクリプト名 |
| /etcや/usr変更時 | 管理者権限不足 | sudo を付ける |
| ホームフォルダ以外 | フルディスクアクセス | ターミナルにFDA許可 |
| /Systemフォルダ | SIP保護 | 通常は変更不可(設計通り) |
この記事に関連するおすすめ商品
Mac テクニカル入門書
約2,800円〜
ターミナルコマンドとmacOS管理の入門書
※ 価格は変動します。最新価格はリンク先でご確認ください
よくある質問(FAQ)
Q. sudoを使っても「Permission denied」になる
A. SIPによる保護が原因の可能性があります。/System配下のファイルはsudoでも変更できません。これはmacOSのセキュリティ設計です。
Q. chmodコマンドの権限数字の意味は?
A. 数字は読み取り(4)、書き込み(2)、実行(1)の合計です。755は所有者が読み書き実行、グループと全員は読み実行を意味します。
Q. ターミナル以外の方法で権限を変更できる?
A. Finderでファイルを右クリック→「情報を見る」→「共有とアクセス権」でGUIから権限を変更できます。
まとめ
MacのPermission deniedエラーはスクリプトへの実行権限付与、sudoコマンドの使用、ターミナルへのフルディスクアクセス許可の3つで多くの場合解決できます。
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!