ファイル/ディレクトリのパーミッションを変更するには、chmod コマンドを使用します。
![]() | パーミッションを変更できるのは、スーパーユーザーとファイルの所有者だけです。 |
chmod コマンドには、引数を指定するときに、記号で指定する“シンボルモード”と 8進数の数字で指定する“絶対モード”があります。
以下にシンボルモードの書式を示します。
$ chmod [オプション] 対象/記号/権限 ファイル名|ディレクトリ名 |
代表的なオプションには -R があります。これは、指定したディレクトリ以下に存在(サブディレクトリを含む)する全ファイルのパーミッションを再帰的に変更します。
対象/記号/権限に指定する文字を以下に示します。
表 4-1. chmod コマンドのシンボルモード
| 対象 | u | 所有者(user) |
| g | グループ(group) | |
| o | その他のユーザー(other) | |
| a | 全てのユーザー(all) | |
| 記号 | + | 権限を追加 |
| - | 権限を削除 | |
| = | 権限を再設定 | |
| 権限 | r | 読み込み許可(readable) |
| w | 書き込み許可(writable) | |
| x | 実行許可(executable) | |
| s | set 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進数の数字は以下の通りです。
例えば、次のファイルのパーミッション(rw-rw-r--)は、絶対モードで 664 と表記されます。
-rw-rw-r-- 1 turbo turbo 5 Apr 20 15:43 sample.txt |
また、特殊な権限である、SUID、SGID、スティッキービットを設定するには、絶対モードで表記した 3桁の数字の前に以下の数字を付け加えます。
つまり、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 |