2016年一発目の記事はまさかのファイルパーミッションのお話!
なんとなくは分かっていたけど、具体的に説明できなかったのでこれまた備忘録になってしまいますがズラズラ書いてみます。
長いことweb開発やっていますが未だにそういえばパーミッション変更してねー!!みたいなことって結構あります(俺だけ)。
んでなんとなく、全員に書き込みも読み込みも実行もできるようにしちゃえばいんじゃね?みたいなことしゃいます(俺だけ)。
適切にパーミッションを設定しないと、ID・パスワードなどを設定してるファイルがみられちゃったり、ソースコードがみられてちゃったり、ファイルの一覧がみられちゃったり、プログラムが実行されちゃったり色々とリスクがあります。
では、用途に応じて適切なパーミッションを設定するにはどうしたらよいのか?
パーミッション関連の設定を一つずつ見ていきましょう。
パーミッション関連に必要設定項目概要
- 所有者と所属グループ
- 権限レベル
- 権限の適応範囲
1. 所有者と所属グループ
ファイル・ディレクトリには所有者と所属グループという権限が与えられている
【所有者】
・ファイルを所有してるユーザー
※基本的にはファイル・ディレクトリを作成したユーザーが所有者になる
【グループ】
・ファイルを所有しているグループ
※基本的にはファイル・ディレクトリを作成したユーザーが所属してるグループが所持しているグループになる
このようにファイル・ディレクトリに所有者・グループを割り当てることによって、
所有者ごとの権限・グループごとの権限など柔軟な権限レベルの設定を行うことが出来る。
グループのメリットとしては、特定のグループに所属してるユーザーにだけファイルの編集を行わせたい、閲覧をさせたいなどまとまった管理を行うことが出来る。
2. 権限レベル
r (読み込み) | w (書き込み) | x (実行) | |
---|---|---|---|
ディレクトリの場合 | ディレクトリの一覧の参照が可能 | ディレクトリ内のファイルの削除、 名前変更が可能。新規作成が可能 |
ディレクトリにアクセス可能 |
ファイルの場合 | ファイルをひらける | ファイルを編集・更新できる | プログラムを実行できる |
よく見る755とか644とかの意味
r (読み込み) | w (書き込み) | x (実行) | |
---|---|---|---|
2進数表記 | 100 | 010 | 001 |
8進数表記 | 4 | 2 | 1 |
読み込みしかできない
- r (読み込み) 4 = 4
読み込みと書き込みができる
- r (読み込み) 4 + w (書き込み) 2 = 6
なんでもできる
- r (読み込み) 4 + w (書き込み) 2 + x (実行) 1 = 7
3. 権限の適応範囲
所有者
所有者の場合に適用される権限
グループ
所属してるグループの場合に適用される権限
他人
所有者でも所属グループでもない場合に適用される権限
表記例:(所有者権限)(グループ権限)(他人権限)
とりあえず所有者だけはなんでもできるようにしたい
- 700
所有者には書き込み/読み込みだけさせて、所属グループには読み込みだけさせたい
- 644
所有者にはなんでもさせて、所有者以外は書き込み/読み込みをさせたい
- 755
- 全員になんでもさせたい
- 777