UNIX (Linux) のパーミッションについて、まとめました。
Linuxについては以下をご覧ください。
目次
UNIX(Linux)のパーミッション一覧
UNIXでは、ファイルにパーミッションという考え方があり、
パーミッションには、
- 「自分(Owner)」「グループ(Group)」「他人(Other)」の3つの所有権
- 「読み」「書き」「実行」の3つの実行権
があります。
所有権について
所有権は次の通り
意味 | |
---|---|
自分(Owner) | ファイル/ディレクトリの所有者、本人のこと |
グループ(Group) | 同じサーバーを利用できるユーザ全体 |
他人(Other) | その他全て、第三者のこと |
実行権について
実行権は次の通り
ファイル | ディレクトリ | |
---|---|---|
読み | 指定したファイルの内容を表示する | リストの表示可能 |
書き | ファイルの上書き、削除 | ディレクトリに新規ファイル作成可能 |
実行 | 実行ファイルの実行(プログラム、CGIなど) | カレントディレクトリにすることができる |
読み・書き・実行の3つの実行権は以下の記号、または数字で表されます。
記号 | 数字 | |
---|---|---|
読むことができる (Readable) | r | 4 |
書くことができる (Writable) | w | 2 |
実行することができる (eXecutable) | x | 1 |
なにもできない | - | 0 |
2進数で表されています。
4 = 100
2 = 010
1 = 001
0 = 000
UNIX(Linux)でファイルの見方、管理
UNIX上ではどのような管理になるかというと、パーミッションは、
- ディレクトリかどうか
- 3つの所有権
- 3つの実行権
1 + 3×3 の合計10個の情報から成り立っています。
d | r | w | x | r | w | x | r | w | x |
---|---|---|---|---|---|---|---|---|---|
ディレクトリ | 読み | 書き | 実行 | 読み | 書き | 実行 | 読み | 書き | 実行 |
自分 | グループ | 他人 |
たとえば自分にはすべての実行権が許可されるが、自分以外のグループや他人には、何も許さないという場合は「rwx------」という表記になります。
逆にすべての人にすべての実行権を許す場合は、「rwxrwxrwx」という表記になります。
これを数字で表す場合、たとえば「rw-r--r--」の場合は以下のことを意味します。
- 「自 分」 → r+w = 4+2 = 6
- 「グループ」 → r = 4
- 「他人」 → r = 4
許可対象のユーザごとに足した結果を「rwx」表記のときと同じ順番で並べます。
したがって数字の場合「644」と表記します。
桁の数字の意味は、左から自分、グループ、他人になり、それぞれに指定した読み、書き、実行、の合計が属性値になります。
属性値 = 読み + 書き + 実行
Linuxでユーザー権限、パーミッションの確認
Linuxでユーザー権限を確認する方法は、
ls -l
というコマンドを使います。
1 2 |
$ ls -l index.php -rw-rw-rw- apache apache 8月31日 00:00 2015 index.php |
先頭にパーミッション、権限が表示されています。
chmodで所有権、実行権の変更、読み方は?
Linuxで権限、パーミッションの変更を行うコマンドはchmodです。
chmodは、change modeを略したものです。
従って、chmodの読み方は、チェンジモードです。
パーミッションの説明が理解できれば、以下のコマンドの意味が分かると思います。
1 2 |
$ ls -ls index.php -rw-rw-rw- apache apache 8月31日 00:00 2015 index.php |
このindex.phpのファイルのパーミッションが、0666だったので0644に変えてみましょう。
1 2 3 |
$ chmod 644 index.php $ ls -ls index.php -rw-r--r-- apache apache 8月31日 00:00 2015 index.php |
Linuxでchmod 777, chmod755の意味
以上の説明から
chmod 777
chmod 755
は以下の意味を持ちます。
1 2 3 |
$ chmod 777 index.php $ ls -ls index.php -rwxrwxrwx apache apache 8月31日 00:00 2015 index.php |
自分、グループ、他人が読み、書き、実行可能になります。
1 2 3 |
$ chmod 755 index.php $ ls -ls index.php -rwxr-xr-x apache apache 8月31日 00:00 2015 index.php |
自分が読み、書き、実行可能です。
グループ、他人は、読み、実行可能です。書くことは出来ません。
Linux chmod 再帰的、一括
chmodの指定ファイルは、* (アスタリスク) による一括指定が可能です。
また、ディレクトリ以下すべてを再帰的に変更するには
chmod -R 755 (フォルダ名)
のように
-R
を使います。
再帰については以下をご覧ください。
コメント
[…] […]
[…] UNIX (Linux) のパーミッションをchmodでファイルやディレクトリで設定UNIX (Linu… […]