chmod のシンボルモードを覚える
chmod
コマンドは、3桁の数字を記載する「数値モード」と、rwx
を +-
とかで操作する「シンボルモード」という、2種類のパーミッション指定方法がある。
自分は数値モードの方が直感的で多用していたのだが、-R
オプションでファイルやディレクトリに再帰的に権限を付与する時はシンボルモードの方が便利だったので、コチラを覚えてみることにした。
目次
シンボルモードの基本
シンボルモードの基本は、
- 対象 :
u
(ユーザ)・g
(グループ)・o
(その他) - 変更内容 :
+
(追加)・-
(削除)・=
(設定) - 権限 :
r
(読取)・w
(書込)・x
(実行)
を組み合わせて記述していく。
$ chmod u+r HOGE.txt # 所有者 (u・User) に、読み取り権限 (r) を追加
$ chmod g+w HOGE.txt # グループ (g) に、書き込み権限 (w) を追加
$ chmod go-x HOGE.txt # グループ (g) とその他 (o・Other) から、実行権限 (x) を削除 (-)
$ chmod g+r,o+r HOGE.txt # グループとその他に、読み取り権限追加
$ chmod g+u HOGE.txt # グループに、所有者と同じ権限を追加
ディレクトリとファイルに別々の権限を与える
-R
オプションで再帰的に付与する場合は、
- ファイルは
664
- ディレクトリは
775
なんかにしたいことはよくある。そういう場合は以下のようにする。
$ chmod -R '=r,u+w,g+w,+X' TARGET-DIR/
=r
で全グループに読み取り権限を設定 (444)u+w,g+w
でユーザとグループに書き込み権限を追加 (220)+X
が特殊属性。-R
と併用時、ディレクトリにのみ実行権を追加する (111)
これらの指定で、
- ファイルは 444 + 220 = 664
- ディレクトリは 444 + 220 + 111 = 775
という権限になるのだ。