ファイルのアクセス制御

Linux活用日記


Last modified: Sun Aug 26 2001



Linux では (Windows NT/2000 でもそうですが) システムファイルなどには, 一般ユーザーの権限では書込みが出来ない, 読み取りが出来ないなどのアクセス制御がなされています. それと同様に一般ユーザーのホームディレクトリなどのファイルやディレクトリにも, 他のユーザーに対してのアクセス制御がなされています. このアクセス制御(アクセス権限)の設定状況は下記のコマンドで見ることが出来ます. 例えば, /home/foo/ というディレクトリのアクセス権限を見るには下記のコマンドを実行します.

$ ls -l

アクセス権限 ファイル所有者 グループ サイズ 日付 ファイル名
-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 ---> 実行許可

以上のことから, 上記の場合は, ディレクトリではなくファイルであり, 所有者は読み書き実行可, グループは読み書き可, その他の者も読み書き可になっていることがわかります.

このアクセス権限(パーミッション)を変更するには, 次のコマンドを使います.

$ chmod

例えば上記の場合では, アクセス権限(パーミッション)モードは 766 になっています. これを, 所有者だけに読み書き実行可にして, グループとその他のユーザーに対しては読込みのみ可にする場合は以下のようにします.

$ chmod 744 filename

これは次のように文字を使って行うことも出来ます.

対 象 可 否 権 限
u (所有者) + (可) r
g (グループ) - (否) w
o (他ユーザー) - x

例えば, 所有者だけに読み書き実行権のある 700 のファイルに, グループにも読み書き許可する場合は,

$ chmod g+rw filename

これでパーミッションモードが 760 になります.

次に, 全員に読込みだけ許可してある 444 のファイルを所有者だけ書込みと実行許可するには,

$ chmod u+wx filename

これでパーミッションモードが 744 になります.

( 744 = rwxr--r-- )

尚, ディレクトリに対して, chmod を使う場合は, chmod の後に -R を付けます.

$ chmod -R u+wx filename

ファイルとディレクトリの違いは, 行頭に d か - であるかです. 例えば下記の場合はディレクトリです.

drwxrw-rw-

それでは, ファイルの所有者を変えるにはどうすればいいのか?それには chown を使います. 例えば, 所有者が root になっているファイルをユーザー kagoai に変えたいのであれば下記のようにします.

# chown kagoai filename

しかしこのままではグループが root のままでしょうから, グループも kagoai が所属する group1 に変えるのなら

# chown kagoai.group1 filename

ディレクトリ毎, 所有者を変更するのなら,

# chown -R kagoai filename



関連項目:
ユーザーとグループ
スーパーユーザー



HOME