macOS の「Operation not permitted」を回避する【du/ls/mv/cp 実行時】【Mojave/Catalina 以降】
「Operation not permitted」で du
しようもない
Mac を Mojave にしてからターミナルでコマンドを実行すると「
du: 〜: Operation not permitted
」と表示されるのでdu
しようもないのです。2020/08/28 追記: Catalina でも同じ現象が出ました。
せやかて sudo
でも同じで、「du
んだけ〜」かと思ったら ls
mv
cp
などの他のコマンドでもチョイチョイ出るので困りました。
$ # ホームディレクトリ直下にあるサブディレクトリ容量の表示
$ sudo du -d 1 -h ~
Password:
(略)
du: /Users/admin/Library/Application Support/CallHistoryTransactions: Operation not permitted
du: /Users/admin/Library/Application Support/com.apple.TCC: Operation not permitted
du: /Users/admin/Library/Application Support/CallHistoryDB: Operation not permitted
du: /Users/admin/Library/IdentityServices: Operation not permitted
du: /Users/admin/Library/Messages: Operation not permitted
du: /Users/admin/Library/HomeKit: Operation not permitted
du: /Users/admin/Library/Mail: Operation not permitted
du: /Users/admin/Library/Safari: Operation not permitted
du: /Users/admin/Library/Suggestions: Operation not permitted
(以下省略)
検証環境と現象の完全ログ
$ # 検証日
$ date
2019年 1月17日 木曜日 17時10分14秒 JST
$
$ # OSのバージョン
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.14.2
BuildVersion: 18C54
$
$ # du コマンドのバージョン
$ man du | tail -1 | sed -e 's/ */ /g'
BSD June 2, 2004 BSD
$ # ホームディレクトリで du の実行
$ sudo du -d 1 -h ~
Password:
3.8M /Users/admin/Music
8.0K /Users/admin/.docker
8.0K /Users/admin/.local
0B /Users/admin/Pictures
6.0M /Users/admin/.phpls
54M /Users/admin/Desktop
du: /Users/admin/Library/Application Support/CallHistoryTransactions: Operation not permitted
du: /Users/admin/Library/Application Support/com.apple.TCC: Operation not permitted
du: /Users/admin/Library/Application Support/CallHistoryDB: Operation not permitted
du: /Users/admin/Library/IdentityServices: Operation not permitted
du: /Users/admin/Library/Messages: Operation not permitted
du: /Users/admin/Library/HomeKit: Operation not permitted
du: /Users/admin/Library/Mail: Operation not permitted
du: /Users/admin/Library/Safari: Operation not permitted
du: /Users/admin/Library/Suggestions: Operation not permitted
du: /Users/admin/Library/Containers/com.apple.VoiceMemos: Operation not permitted
du: /Users/admin/Library/Containers/com.apple.Home: Operation not permitted
du: /Users/admin/Library/Containers/com.apple.Safari: Operation not permitted
du: /Users/admin/Library/Containers/com.apple.iChat: Operation not permitted
du: /Users/admin/Library/Containers/com.apple.mail: Operation not permitted
du: /Users/admin/Library/Containers/com.apple.stocks: Operation not permitted
du: /Users/admin/Library/PersonalizationPortrait: Operation not permitted
du: /Users/admin/Library/Metadata/CoreSpotlight: Operation not permitted
du: /Users/admin/Library/Cookies: Operation not permitted
du: /Users/admin/Library/Caches/com.apple.safaridavclient: Operation not permitted
du: /Users/admin/Library/Caches/CloudKit/com.apple.Safari: Operation not permitted
du: /Users/admin/Library/Caches/com.apple.Safari: Operation not permitted
9.6G /Users/admin/Library
200K /Users/admin/.bash_sessions
0B /Users/admin/Public
0B /Users/admin/Movies
0B /Users/admin/Applications
0B /Users/admin/.Trash
326M /Users/admin/Documents
147M /Users/admin/Downloads
1.6M /Users/admin/.cache
10G /Users/admin
$ ls -lh ~/
total 0
drwx------@ 3 admin staff 96B 1 15 23:48 Applications
drwx------@ 56 admin staff 1.8K 1 16 00:19 Desktop
drwx------@ 9 admin staff 288B 1 15 19:40 Documents
drwx------+ 6 admin staff 192B 1 17 13:05 Downloads
lrwxr-xr-x 1 admin staff 32B 1 16 12:44 GitHub -> /Volumes/HDD_EXT_01/Git/GitHub
drwx------@ 63 admin staff 2.0K 1 17 03:56 Library
drwx------+ 3 admin staff 96B 1 15 19:37 Movies
drwx------+ 5 admin staff 160B 1 15 22:27 Music
drwx------+ 3 admin staff 96B 1 15 19:37 Pictures
drwxr-xr-x+ 4 admin staff 128B 1 15 19:37 Public
lrwxr-xr-x 1 admin staff 36B 1 16 16:50 Tests -> /Volumes/HDD_EXT_01/Data_Practices
SIP をいじるにしても SIP
返しが怖いし、High Sierra に戻すのも「めん du
」なので Mojave て〜状態なのです。(クドくてすみません 🙇♂️
「"Operation not permitted"
mac
mojave
」と Qiita 記事に絞ってググってみたものの、ピンポイントで、まとまった情報がなかったので自分のググラビリティとして。
TL; DR (今北産業)
- デフォルトのセキュリティ設定がさらに厳しくなった。
(macOS Mojave, OSX 10.14 以降) - ユーザー下のディレクトリ(ホームやゴミ箱など)であっても、それらにアクセスするアプリは明示的に許可しないといけなくなった。
- システム環境設定で「ターミナル」アプリにフルディスクアクセスを許可する必要があります。
TS; DR (なんか色々細かいこと)
「システム環境設定」の「セキュリティとプライバシー」にある「フルディスクアクセス」に「ターミナル」アプリを追加して許可する。
-
手順
- アップルメニュー →
[システム環境設定]
→[セキュリティとプライバシー]
→[プライバシー]
-[フルディスクアクセス]
→(鍵を解除)
→「+」ボタン押下
→ 「アプリケーション」フォルダの「ユーティリティ」にある「ターミナル」を追加 - 【注意】この作業の前に、ターミナルは終了していること
- アップルメニュー →
macOS Mojave(OSX 10.14)以降でセキュリティ設定がさらに厳しくなったため、sudo
付きやユーザーのホームディレクトリ下でも「Operation not permitted
」が出るようになりました。これは、 du
ls
mv
cp
といった基本コマンドでも同じです。
設定変更後の出力結果
$ du -d 1 -h ~
3.8M /Users/admin/Music
8.0K /Users/admin/.docker
8.0K /Users/admin/.local
0B /Users/admin/Pictures
6.0M /Users/admin/.phpls
55M /Users/admin/Desktop
10G /Users/admin/Library
212K /Users/admin/.bash_sessions
0B /Users/admin/Public
0B /Users/admin/Movies
0B /Users/admin/Applications
0B /Users/admin/.Trash
326M /Users/admin/Documents
147M /Users/admin/Downloads
1.6M /Users/admin/.cache
11G /Users/admin
「Permission denied
」と表示される場合
$ du -d 1 -h ~
du: ./.DocumentRevisions-V100: Permission denied
du: ./.TemporaryItems: Permission denied
du: ./.Trashes: Permission denied
sudo
を付けて実行すれば大丈夫です。(要パスワード)
$ sudo du -d 1 -h ~
Password:
36M ./.DocumentRevisions-V100
0B ./.TemporaryItems
12K ./.Trashes
所感
去年(2018 年)から Mac の HighSierra で空き容量が足りないと頻繁に注意されていたので、思い切って平成最後の OS クリーン・インストールをすることにしました。
その際、OS も同じく頻繁に勧められていた Mojave にアップグレードすることにしたのです。(OSX 10.13 → 10.14)
しかし、Xcode を除く最低限必要なアプリに絞ったのに、思った以上に空き容量が確保できません。
そこで du
コマンドで各サブディレクトリの容量を確認1しようとしたところ、du: <略>: Operation not permitted
のアクセス権エラーが乱発しました。
管理者アカウントでも NG で、sudo
を付けても同じく NG でした。(記事上部の「検証環境と現象の完全ログ」参照)
HighSierra のころから、ディレクトリやファイルによっては「Operation not permitted
」は表示されていたのですが、Mojave からユーザーのホームディレクトリ下でも表示されるようになりました。
「これは、シンボリック・リンクを張り間違えたの、か?」と心配になりましたが、特に問題はなさげです。
色々触ってみると、どうやら Mojave 以降でセキュリティ設定がさらに厳しくなった印象を受けます。
となると、HighSierra の時のように SIP
2 がらみの設定だと仮定すると厄介です。リカバリーモードで csrutil disable
のターミナル操作などが必要3になるからです。
しかし、新しく入れた OS に余計な設定はしたくありませんし、アプリの動作検証のために設定を元に戻すのも大変です。
それでも容量は確認しないといけないため、「下手に新たにアプリを入れるのもなぁ」と思って検索してみた4ところ、英語でドンピシャの良質記事がありました5。助かりました。
「Fix Terminal “Operation not permitted” Error in MacOS Mojave」@ OSXDaily
参考文献
-
「ディレクトリ以下のディスク容量を調べるduコマンド」@ Qiita ↩
-
「システム整合性保護(System Integrity Protection)」@ Wikipedia ↩
-
「初心者向け MacでOperation not permittedの解決方法」@ Qiita ↩
-
「
"Operation not permitted"
mac
mojave
」の検索結果 @ Google ↩ -
「Fix Terminal “Operation not permitted” Error in MacOS Mojave」@ OSXDaily ↩
Author And Source
この問題について(macOS の「Operation not permitted」を回避する【du/ls/mv/cp 実行時】【Mojave/Catalina 以降】), 我々は、より多くの情報をここで見つけました https://qiita.com/KEINOS/items/0366f1c281b574a79cfb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .