できない.dev

パーミッション

別名: permission / ファイルパーミッション / ファイルモード / chmod

Linux や macOS がファイルとディレクトリごとに持つ、読み取り(r)・書き込み(w)・実行(x)の許可。
所有者・グループ・その他の 3 区分で決まり、Permission denied や EACCES の直接の原因になる。

公開:

定義

パーミッションは、Unix 系 OS がファイルとディレクトリごとに持つアクセス許可の設定である。
所有者(user)・グループ(group)・その他(others)の 3 区分それぞれに、読み取り(r)・書き込み(w)・実行(x)の可否を持つ。ls -l に出る -rwxr-xr-- のような表示がそれで、許可されていない操作をすると OS は EACCES を返し、多くのツールはこれを Permission denied と表示する。

詳細

権限は chmod で変える。chmod u+x のような記号指定のほか、r=4・w=2・x=1 を区分ごとに足した 8 進数でも指定でき、755 は rwxr-xr-x、600 は rw------- になる。
所有者そのものを変えるのは chown である。
ディレクトリでは x の意味が変わり、中を通り抜けて配下のファイルへ到達するための検索権を表す。
そのため、ファイル自体に権限があっても、親ディレクトリの x が無ければ到達できない。

よくある誤解

関連

権限エラーを sudo で押し切ると、作られたファイルが root 所有になり、次の権限エラーの原因になる。npm のグローバルインストールで出る EACCES や、Docker のボリュームで書き込めない問題も、書き込み先の所有者とパーミッションの食い違いとして読み解ける。

この記事は役立ちましたか?