「パーみっちょん?なんですかそれ?」
な方向けにわかりやすく説明してみました。元ネタは以下のページです。 ムービーのまんまです、、
Linux Security
http://www.linuxsecurity.com/images/stories/permissions.html
コンソールから以下を操作してみてください。
ディレクトリgomiを作る
$ mkdir gomi
ディレクトリgomiへ移動
$ cd gomi
$ ls
file1 2 3 を作成
$ touch file1 file2 file3
ディレクトリの内容を表示
$ dir
file1 file2 file3
一覧を表示する
$ ls -la
drwxrwxr-x
drwx------
-rw-rw-r-- file1
-rw-rw-r-- file2
-rw-rw-r-- file3
見方は以下のとおりです。
-rw-r--r--
-rwxrwxrwx
-ユーザーグループその他
file1のパーミッションを755に変更する場合、以下の様に指定します。
& chmod 755 file1
& ls -la
3桁目の数字 "所有者" を表します。
2桁目の数字 "グループ" を表します。
1桁目の数字 "その他" を表します。えぶりわんと言う奴等です。
それぞれの数字は 1 + 2 + 4 の合計で表し、0の場合は権限なしとなります。
4 = read (読込権)
2 = write (書込権)
1 = exec (実行権)
例 755 は以下の意味になります。
7 = 1+2+4 ユーザー(読込権/書込権/実行権)
5 = 1+4 グループ(読込権/実行権)
5 = 1+4 その他(読込権/実行権)
実際に file1 のパーミッションを変更してみましょう。
$ chmod 755 file1
一覧を表示する 所有権リストを表示
$ ls -la
合計 24
drwxrwxr-x 2 hogehoge hogehoge 4096 5月 23 16:45 .
drwxrwxrwt 18 root root 16384 5月 23 16:45 ..
-rwxr-xr-x 1 hogehoge hogehoge 0 5月 23 16:45 file1
-rw-rw-r-- 1 hogehoge hogehoge 0 5月 23 16:45 file2
-rw-rw-r-- 1 hogehoge hogehoge 0 5月 23 16:45 file3
ということになります。
例 file1 に対し、ユーザーのみに全ての権限を与える
7 = 1+2+4 ユーザー(読込権/書込権/実行権)
0 = グループ(権限なし)
0 = その他(権限なし)
つまり、コマンドで実行すると以下になります。
$ chmod 700 file1
例 ユーザー(所有者)に対し、読込み、書込み権限をあたえ、その他には読込のみ
6 = 4 + 2 ユーザー(読込権/書込権)
6 = 4 + 2 グループ(読込権/書込権)
4 = 4 その他(読込権)
つまり、コマンドで実行すると以下になります。
$ chmod 644 file1
$ chmod 111 file1
$ chmod 444 file2
$ chmod 222 file3
$ ls -la
合計 24
drwxrwxr-x 2 hogehoge hogehoge 4096 5月 23 16:45 .
drwxrwxrwt 18 root root 16384 5月 23 16:45 ..
---x--x--x 1 hogehoge hogehoge 0 5月 23 16:45 file1
-r--r--r-- 1 hogehoge hogehoge 0 5月 23 16:45 file2
--w--w--w- 1 hogehoge hogehoge 0 5月 23 16:45 file3
このように、3桁の数字用いるだけで、ユーザー・グループ・その他の全ての権限を表す事が出来ると言う訳です。 これらは、Linux に限らずセキュリティを考える上で基本中の基本となります。
当たり前すぎて触れられる事も少ないかもしれません。この他にも SetUID SetGID といった実行権限を強制するセキュリティに関わる重要な設定もあります。情報は沢山ネットに転がっていますので調べてみて下さい。
Linux では chown / chmod コマンドを使用します。 詳しくは以下のコマンドで調べてみて下さい。 最近のディストリビューションであれば、日本語で表示されると思います。