Last modified: Sun Aug 26 2001
Linux では (Windows NT/2000 でもそうですが) システムファイルなどには, 一般ユーザーの権限では書込みが出来ない, 読み取りが出来ないなどのアクセス制御がなされています. それと同様に一般ユーザーのホームディレクトリなどのファイルやディレクトリにも, 他のユーザーに対してのアクセス制御がなされています. このアクセス制御(アクセス権限)の設定状況は下記のコマンドで見ることが出来ます. 例えば,
/home/foo/ というディレクトリのアクセス権限を見るには下記のコマンドを実行します.
| アクセス権限 | ファイル所有者 | グループ | サイズ | 日付 | ファイル名 | |||||
| -rwxrw-rw- | hukuhara | tigers | 32165 | 8 6 18:21 | abc.txt | |||||
| -rw------- | hukuhara | tigers | 4432 | 9 7 22:11 | def.txt | |||||
| - | hukuhara | tigers | 193210 | 11 9 12:31 | ghi.txt |
上記のアクセス権限(パーミッション)は下記の意味があります.
| 所有者 | グループ | 他ユーザー | ||||||||
| r | w | x | r | w | - | r | w | - | ||
| 4 | 2 | 1 | 4 | 2 | 0 | 4 | 2 | 0 | ||
r ---> 読込み許可
w ---> 書込み許可
x ---> 実行許可
以上のことから, 上記の場合は, ディレクトリではなくファイルであり, 所有者は読み書き実行可, グループは読み書き可, その他の者も読み書き可になっていることがわかります.
このアクセス権限(パーミッション)を変更するには, 次のコマンドを使います.
例えば上記の場合では, アクセス権限(パーミッション)モードは 766 になっています. これを, 所有者だけに読み書き実行可にして, グループとその他のユーザーに対しては読込みのみ可にする場合は以下のようにします.
これは次のように文字を使って行うことも出来ます.
| 対 象 | 可 否 | 権 限 |
| u (所有者) | + (可) | r |
| g (グループ) | - (否) | w |
| o (他ユーザー) | - | x |
例えば, 所有者だけに読み書き実行権のある 700 のファイルに, グループにも読み書き許可する場合は,
これでパーミッションモードが 760 になります.
次に, 全員に読込みだけ許可してある 444 のファイルを所有者だけ書込みと実行許可するには,
これでパーミッションモードが 744 になります.
( 744 = rwxr--r-- )
尚, ディレクトリに対して, chmod を使う場合は, chmod の後に -R を付けます.
ファイルとディレクトリの違いは, 行頭に d か - であるかです. 例えば下記の場合はディレクトリです.
drwxrw-rw-
それでは, ファイルの所有者を変えるにはどうすればいいのか?それには chown を使います. 例えば, 所有者が root になっているファイルをユーザー kagoai に変えたいのであれば下記のようにします.
しかしこのままではグループが root のままでしょうから, グループも kagoai が所属する group1 に変えるのなら
ディレクトリ毎, 所有者を変更するのなら,