yusukesasaki-com / Mitarashi

MIT License
0 stars 0 forks source link

サーバーの権限について #8

Open yusukesasaki-com opened 8 years ago

yusukesasaki-com commented 8 years ago

未だによく理解できていない権限(パーミッション)について調査・実証していく

ユーザーの種類

上記3つに分けられる。 ディレクトリやファイルにはそれぞれのユーザーが「権限 = パーミッション = 何が出来るか」が設定される。

権限(パーミッション)の種類

上記3つに分けられる。 unixコマンド「ls」にオプション「-l」で各ディレクトリ・ファイルのパーミッション・所有者・グループを表示できる。

パーミッションの見方

ローカル環境(Centos6.7)のルートディレクトリで「ls -l」を実行して表示された一覧から一行を抜粋 (今回関係のないファイルサイズ・日付は更新日等は...として省略)

drwxr-xr-x.  13 root    root  ... usr

最初の「d」はディレクトリのd。ファイルの場合は「-」になる。 その次のアルファベットまたは - は3つ毎に区切る。最初の3つは 所有者、次の3つはグループ、最後の3つはその他の権限を表している。

「usr」ディレクトリの権限は、所有者「rwx」、グループ「r-x」、その他「r-x」となっている。 権限は組み合わせによって数値で表すことができる。

数値 アルファベット 権限
0 --- なし
1 --x 実行 
2 -w- 書込
3 -wx 書込 実行
4 r-- 読込
5 r-x 読込 実行
6 rw- 読込 書込
7 rwx 読込 書込 実行

つまり、「usr」ディレクトリの権限を数値で表すと「755」となる。

その次の13はそのディレクトリに存在するディレクトリ数。

その次の root は所有者、その次の root はグループ。

権限毎に出来る事

index.html

ブラウザから実行(アクセス) → ユーザー = apache (その他)

権限 結果
--- (0) 403 Forbidden
--x (1) 403 Forbidden
-w- (2) 403 Forbidden
-wx (3) 403 Forbidden
r-- (4) 200 OK
r-x (5) 200 OK
rw- (6) 200 OK
rwx (7) 200 OK

ブラウザでhtmlを表示するには r (読込) 権限が必要。


FTPソフトでダウンロード -> ユーザー = ログインユーザー

権限 結果
--- (0) 不可
--x (1) 不可
-w- (2) 不可
-wx (3) 不可
r-- (4) OK
r-x (5) OK
rw- (6) OK
rwx (7) OK

FTPソフトでファイルをダウンロードする場合も r (読込) 権限が必要。


FTPソフトで上書き -> ユーザー = ログインユーザー

権限 結果
--- (0) 不可
--x (1) 不可
-w- (2) OK
-wx (3) OK
r-- (4) 不可
r-x (5) 不可
rw- (6) OK
rwx (7) OK

FTPソフトでファイルを上書きする場合は w (書込) 権限が必要。


index.php

ブラウザから実行(アクセス) → ユーザー = apache (その他)

権限 結果
--- (0) 200 OK
Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0
--x (1) 200 OK
Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0
-w- (2) 200 OK
Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0
-wx (3) 200 OK
Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0
r-- (4) 200 OK
r-x (5) 200 OK
rw- (6) 200 OK
rwx (7) 200 OK

ブラウザでphpを表示するには r (読込) 権限が必要。 (r がない場合、 200 OK だが PHPのエラーが発生する)


FTPソフトでダウンロード -> ユーザー = ログインユーザー FTPソフトで上書き -> ユーザー = ログインユーザー

index.html と同じ


ディレクトリ

ブラウザからディレクトリ内のindex.phpを実行(アクセス) → ユーザー = apache (その他) (index.phpの権限は 7 にしておく)

権限 結果
--- (0) 403 Forbidden
--x (1) 200 OK
-w- (2) 403 Forbidden
-wx (3) 200 OK
r-- (4) 403 Forbidden
r-x (5) 200 OK
rw- (6) 403 Forbidden
rwx (7) 200 OK

ディレクトリ内のindex.phpを表示するには x (実行) 権限が必要。


FTPソフトでディレクトリ内を表示 -> ユーザー = ログインユーザー

権限 結果
--- (0) 不可
--x (1) 不可
-w- (2) 不可
-wx (3) 不可
r-- (4) △ (ファイルが表示されない)
r-x (5) OK
rw- (6) △ (ファイルが表示されない)
rwx (7) OK

FTPソフトでディレクトリ内を表示には r (読込) + x (実行) 権限が必要。


FTPソフトでディレクトリ内のファイルをダウンロード -> ユーザー = ログインユーザー (上記内容から r-x (4) と rwx (7) のみ対象とし、ファイルの権限は 7 にしておく)

権限 結果
r-x (5) OK
rwx (7) OK

FTPソフトでファイルをダウンロードする場合も r (読込) + x (実行) 権限が必要。


FTPソフトでディレクトリ内のファイルを上書き -> ユーザー = ログインユーザー (ファイルの権限は 7 にしておく)

権限 結果
--- (0) 不可
--x (1) 不可
-w- (2) 不可
-wx (3) 不可
r-- (4) 不可
r-x (5) OK
rw- (6) 不可
rwx (7) OK

FTPソフトでディレクトリ内のファイルを上書きする場合も r (読込) + x (実行) 権限が必要。


FTPソフトでディレクトリに新規ファイルをアップロード -> ユーザー = ログインユーザー

権限 結果
--- (0) 不可
--x (1) 不可
-w- (2) 不可
-wx (3) 不可
r-- (4) 不可
r-x (5) 不可
rw- (6) 不可
rwx (7) OK

FTPソフトでディレクトリに新規ファイルをアップロードする場合は r (読込) + w (書込) + x (実行) 権限が必要。