教えてくれ五飛、俺はあと何回ディレクトリのパーミッションをぐぐれば良いんだ。
というわけで、忘れた頃にやってくるディレクトリのパーミッションについてメモしておこうと思いました。
ファイルとディレクトリで異なるパーミッション
Linuxのパーミッションは、8進数を3つ組み合わせた形で指定します。
744
であるとか 777
といった風にですね。
それぞれ1桁ずつ独立しており、各桁が指定するのは以下の様になります。
(左から1桁、2桁、3桁めとします。)
桁 | 内容 |
---|---|
1 | 所有者 |
2 | グループ |
3 | その他のユーザ |
また、数値が意味するパーミッションをまとめたのが以下の表です。
|名前|英字|8進数|ファイル|ディレクトリ|
|:-:|:-:|:-:|:-:|:-:|:-:|
|読取|r|4|ファイルの表示|ファイル一覧の表示|
|書込|w|2|ファイルの上書き、変更|新規ファイルの作成、削除|
|実行|x|1|ファイルの実行|そのディレクトリに移動|
8進数というのは、コマンドなどで指定する時の数値になります。
8進数 |
ls -l 表記 |
---|---|
7 | rwx |
6 | rw- |
5 | r-x |
4 | r-- |
2 | -w- |
1 | --x |
つまり、以下の chmod 754 ./test.sh
というコマンドを発行した場合は
test.shファイルを、所有者は「読取」「書込」「実行」権限を有し、
グループは「読取」「実行」権限を有する。
その他のユーザーは「読取」権限のみを有する。
上記のパーミッションをファイルに付与する、という事になります。
ファイルの削除を制限するスティッキービット
上記の通り、ファイルの削除はファイルのパーミッションに関わらず、ディレクトリのパーミッションが参照されます。
しかし、スティッキービットを指定したディレクトリに関しては、
ファイルの削除がファイルの所有者のみに制限されます。
- drwxrwxrwt
スティッキービットが設定されているディレクトリは、
ファイルリスト取得時、上記の通り末尾に t
が付与されます。
ディレクトリの実行権限に関する注意点
ディレクトリの実行権限はサブディレクトリに影響します。
- /User/DevSong/Documents/
上記の様なディレクトリがあり DevSong
ディレクトリに実行権限がない場合、
Documents
ディレクトリが例え 777
であったとしても Documents
ディレクトリへの書き込み、削除はできません。