macでpermission deniedが出た時、ファイルの権限を一括変換する方法。


結論(コマンドの打ち間違い注意!)

find /絶対パスで指定 -type f -exec chmod 三桁の数字 {} +

原因

調べてみるとアクセス拒否とのことで、権限がないからその行為は出来ないようになっているとのこと。

解決策

権限を渡す。簡単。

ターミナルでエラーが出ている階層まで行き、下記のコマンドを入力すると英語と数字がいっぱい出てくる。

$ls -la
drwxr-xr-x  10 tada tada    320  6  7 00:00 app

左から順番に、

表示 意味
d ファイルタイプ
rwxr-xr-x パーミッション
10 ハードリンクの数
tada ファイルの所有者(オーナー名)
tada ファイルの所属グループ名
320 サイズ
6 7 00:00 タイムスタンプ
app ファイル名

エラー名にも出ていたパーミッションが出てきた。
謎の英語の羅列を少し調べてみる。

アルファベットの意味は、

表示 意味
r 読み込み可能
w 書き込み可能
x 実行可能
- 不可

羅列の意味は、順番が重要とのことでアルファベットを三つずつ管理をしている。
左からオーナー(u)、グループ(g)、その他のユーザー(o)。
今回の場合は、
1. オーナーは 読み書き実行可能
2. グループは 書き込みと実行可能
3. その他ユーザーは 書き込みと実行可能

今回はその他ユーザーが書き込みできなかったので、書き込みの権限を渡せばいいのだなと推定。
コマンドを調べてみると、

$ chmod o+w app

または、

$ chmod 775 app

ただ、このコードではそのディレクトリのみ権限を変更しかしてくれないので、
今回はapp配下のファイルを一括で変更したい。

find /絶対パスで指定 -type f -exec chmod 三桁の数字 {} +

これで指定の配下のファイルが一括で権限の変更がされていると思います。
数字の打ち間違いは本当に注意が必要ですね。

結論
権限周りは上司に確認を取りながら進めよう。