パーミッションについて
chmod
コマンド
- ファイルやディレクトリのパーミッション(権限)を変更するために使用されるコマンド
-
chmod
は "change mode" の略
基本構文
chmod [オプション] モード ファイル名
- オプション: パーミッション変更の動作を制御するフラグ
- モード: パーミッションの変更方法を指定(シンボルモードまたは数値モード)
- ファイル名: パーミッションを変更する対象のファイルまたはディレクトリの名前
主なオプション
-
-R
,--recursive
: ディレクトリとその中のすべてのファイルおよびサブディレクトリに対して再帰的に変更を適用 -
-v
,--verbose
: 変更された各ファイルについて診断メッセージを表示 -
-c
,--changes
: 実際に変更が行われたファイルについてのみ診断メッセージを表示
シンボルモード
シンボルモードは、パーミッションを文字で表現し、変更する際に使用
パーミッションの種類
-
r
: 読み取り (read) -
w
: 書き込み (write) -
x
: 実行 (execute)
対象
-
u
: ユーザー (user) -
g
: グループ (group) -
o
: その他 (others) -
a
: すべて (all)
操作
-
+
: パーミッションを追加 -
-
: パーミッションを削除 -
=
: パーミッションを特定の値に設定
例
-
chmod u+x file
: ファイルの所有者に実行権限を追加 -
chmod g-w file
: ファイルのグループから書き込み権限を削除 -
chmod o=r file
: その他のユーザーに読み取り権限のみを設定 -
chmod a=rw file
: すべてのユーザーに読み取りと書き込み権限を設定
数値モード
数値モードは、パーミッションを8進数で表現し、設定する際に使用
数値とパーミッションの対応
-
4
: 読み取り (r) -
2
: 書き込み (w) -
1
: 実行 (x) -
0
: 権限なし
表現
各対象(ユーザー、グループ、その他)に対して、それぞれの権限の数値を合計
-
7
: 読み取り + 書き込み + 実行 (4 + 2 + 1) -
6
: 読み取り + 書き込み (4 + 2) -
5
: 読み取り + 実行 (4 + 1) -
4
: 読み取りのみ -
3
: 書き込み + 実行 (2 + 1) -
2
: 書き込みのみ -
1
: 実行のみ -
0
: 権限なし
例
-
chmod 755 file
: ファイルの所有者にすべての権限、グループとその他に読み取りと実行権限を設定 -
chmod 644 file
: ファイルの所有者に読み取りと書き込み権限、グループとその他に読み取り権限を設定 -
chmod 777 file
: すべてのユーザーにすべての権限を設定
使用例
-
シンボルモードでの使用例
-
ファイルの所有者(ユーザー)に実行権限を追加する:
chmod u+x file.txt
-
グループから書き込み権限を削除する:
chmod g-w file.txt
-
その他のユーザーに読み取り専用権限を設定する:
chmod o=r file.txt
-
すべてのユーザーに読み取りと書き込み権限を設定する:
chmod a=rw file.txt
-
-
数値モードでの使用例
-
ファイルに 755 のパーミッションを設定する(所有者はすべての権限、グループとその他は読み取りと実行権限):
chmod 755 file.txt
-
ファイルに 644 のパーミッションを設定する(所有者は読み取りと書き込み権限、グループとその他は読み取り権限):
chmod 644 file.txt
-
ディレクトリに 777 のパーミッションを設定する(すべてのユーザーにすべての権限):
chmod 777 directory
-
-
再帰的な変更
-
ディレクトリとそのすべての内容に対してパーミッションを再帰的に変更する:
chmod -R 755 directory
-