第 4章ファイルの属性

4.1. ファイルのパ‐ミッションを変更 【chmod】

ファイル/ディレクトリのパーミッションを変更するには、chmod コマンドを使用します。

注意

パーミッションを変更できるのは、スーパーユーザーとファイルの所有者だけです。

chmod コマンドには、引数を指定するときに、記号で指定する“シンボルモード”と 8進数の数字で指定する“絶対モード”があります。

以下にシンボルモードの書式を示します。

$ chmod [オプション] 対象/記号/権限 ファイル名|ディレクトリ名

代表的なオプションには -R があります。これは、指定したディレクトリ以下に存在(サブディレクトリを含む)する全ファイルのパーミッションを再帰的に変更します。

対象/記号/権限に指定する文字を以下に示します。

表 4-1. chmod コマンドのシンボルモード

対象u所有者(user)
gグループ(group)
oその他のユーザー(other)
a全てのユーザー(all)
記号+権限を追加
-権限を削除
=権限を再設定
権限r読み込み許可(readable)
w書き込み許可(writable)
x実行許可(executable)
sset user ID(SUID)、set group ID(SGID)
tスティッキービット(sticky bit)

以下では、シンボルモードを使用したパーミッションの変更例を示します。

-rw-rw-r--   1 turbo     turbo            5 Apr 20 15:43 sample.txt

このファイルに対して、他のユーザーにも書き込み権限を与えるには、次のようにコマンドを実行します。

$ chmod o+w sample.txt

ls -l コマンドで、他のユーザーに書き込み権限が与えられたことを確認します。

-rw-rw-rw-   1 turbo     turbo            5 Apr 20 15:43 sample.txt

次に、所有者だけが書き込めるように制限するには、次のようにコマンドを実行します。

$ chmod go-w sample.txt

ls -l コマンドで、グループとその他のユーザーの書き込み権限が削除されたことを確認します。

-rw-r--r--   1 turbo     turbo            5 Apr 20 15:43 sample.txt

以下に絶対モードの書式を示します。

$ chmod [オプション] 8進数の数字 ファイル名|ディレクトリ名

絶対モードでは、ファイルのパーミッションを 8進数の数字で指定します。パーミッションに対応する 8進数の数字は以下の通りです。

表 4-2. chmodの絶対モード

0---
1--x
2-w-
3-wx
4r--
5r-x
6rw-
7rwx

例えば、次のファイルのパーミッション(rw-rw-r--)は、絶対モードで 664 と表記されます。

-rw-rw-r--   1 turbo     turbo            5 Apr 20 15:43 sample.txt

また、特殊な権限である、SUID、SGID、スティッキービットを設定するには、絶対モードで表記した 3桁の数字の前に以下の数字を付け加えます。

表 4-3. setuid、setgid、sticky bit

1スティッキービット
2SGID
4SUID

つまり、rwxrwxrwx(777)の権限を持つディレクトリにスティッキービットを指定する場合、絶対モードでの表記は 1755 となります。

以下より、絶対モードを使用したパーミッションの変更例を示します。

-rw-rw-r--   1 turbo     turbo            5 Apr 20 15:43 sample.txt

このファイルに対して、他のユーザーにも書き込み権限を与えるには、rw-rw-r-- を rw-rw-rw- に変更する必要があります。つまり、666 を指定して chmod コマンドを実行します。

$ chmod 666 sample.txt

ls -l コマンドで、他のユーザーに書き込み権限が与えられたことを確認します。

$ ls -l
-rw-rw-rw-   1 turbo     turbo            5 Apr 20 15:43 sample.txt

次に、ファイルの所有者だけに書き込み権限を与えるには、次のコマンドを実行します。

$ chmod 644 sample.txt

ls -l コマンドで、グループとその他のユーザーの書き込み権限が削除されたことを確認します。

$ ls -l
-rw-r--r--   1 turbo     turbo            5 Apr 20 15:43 sample.txt