このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
【Linux】アクセス権の変更:chmodコマンド
chmodコマンドの概要
「chmod
」コマンドは、ファイルやディレクトリのアクセス権を変更するために使用されます。アクセス権は、所有者、グループ、およびその他のユーザーに対して、読み取り(read)、書き込み(write)、実行(execute)の各権限を設定できます。「chmod
」コマンドは、これらの権限を数値モードまたは記号モードで指定して変更することができます。
アクセス権の指定方法
モード | 説明 | 例 |
---|---|---|
数値モード | アクセス権を8進数で指定する | 755 → 所有者: rwx (7), グループ: r-x (5), その他のユーザー: r-x (5) |
記号モード | アクセス権を記号で指定する | u=rwx,g=rx,o=rx → 所有者: rwx, グループ: rx, その他のユーザー: rx |
数値モードの詳細
数値 | 読み取り (r) | 書き込み (w) | 実行 (x) | 説明 |
---|---|---|---|---|
7 | ✓ | ✓ | ✓ | 読み取り、書き込み、実行 |
6 | ✓ | ✓ | 読み取り、書き込み | |
5 | ✓ | ✓ | 読み取り、実行 | |
4 | ✓ | 読み取り | ||
3 | ✓ | ✓ | 書き込み、実行 | |
2 | ✓ | 書き込み | ||
1 | ✓ | 実行 | ||
0 | なし |
記号モードの詳細
記号 | 説明 | 例 |
---|---|---|
u | 所有者(ユーザー) | u=rwx |
g | グループ | g=rx |
o | その他のユーザー | o=r |
a | すべてのユーザー(所有者、グループ、その他のユーザー) | a=rw |
+ | 権限を追加 | u+x |
- | 権限を削除 | g-w |
= | 権限を設定 | o=r |
主なオプションと説明
オプション | 説明 |
---|---|
-R | 指定したディレクトリとそのサブディレクトリ全体に対してアクセス権を変更します。 |
コマンドの使用例と解説
1.ファイルとディレクトリの作成
この演習で使用するファイルとディレクトリを作成し、アクセス権を確認します。
ファイルとディレクトリを作成する。
次のコマンドを実行します。
- 「
date > file1
」コマンドを実行します。 - 「
mkdir dir
」コマンドを実行します。 - 「
date > dir/file2
」コマンドを実行します。 - 「
ls -l
」コマンドを実行します。 - 「
ls -l dir/file2
」コマンドを実行します。
user01@ubuntu-vm:~$ date > file1
user01@ubuntu-vm:~$ mkdir dir
user01@ubuntu-vm:~$ date > dir/file2
user01@ubuntu-vm:~$ ls -l
合計 44
drwxrwxr-x 2 user01 user01 4096 6月 10 00:46 dir
-rw-rw-r-- 1 user01 user01 43 6月 10 00:44 file1
(省略)
drwxr-xr-x 2 user01 user01 4096 1月 1 10:51 公開
user01@ubuntu-vm:~$ ls -l dir/file2
-rw-rw-r-- 1 user01 user01 43 6月 10 00:46 dir/file2
ファイルとディレクトリのアクセス権を確認する。
ファイルとディレクトリには、デフォルトのアクセス権が設定されています。
file1・・・rw-rw-r--(664)
dir ・・・rwxrwxr-x(775)
file2・・・rw-rw-r--(664)
2.ファイルのアクセス権を数値モードで変更
・「chmod 755 file1
」コマンドを実行し、「ls -l file1
」コマンドでアクセス権を確認します。
file1のアクセス権を所有者に対して読み取り、書き込み、実行(rwx)、グループおよびその他のユーザーに対して読み取り、実行(r-x)に設定します。
user01@ubuntu-vm:~$ chmod 755 file1
user01@ubuntu-vm:~$ ls -l file1
-rwxr-xr-x 1 user01 user01 43 6月 10 00:44 file1
file1ファイルのアクセス権を確認します。アクセス権が「755」に変わっていることが確認できます。
file1・・・rwxr-xr-x(755)
3.ディレクトリとその中のすべてのファイルのアクセス権を数値モードで変更
・「chmod -R 755 dir
」コマンドを実行し、「ls -l
」と「ls -l dir/file2
」コマンドでアクセス権を確認します。
dirディレクトリとその中のすべてのファイルおよびサブディレクトリのアクセス権を所有者に対して読み取り、書き込み、実行(rwx)、グループおよびその他のユーザーに対して読み取り、実行(r-x)の「755」に設定します。
user01@ubuntu-vm:~$ chmod -R 755 dir
user01@ubuntu-vm:~$ ls -l
合計 44
drwxr-xr-x 2 user01 user01 4096 6月 10 00:46 dir
-rwxr-xr-x 1 user01 user01 43 6月 10 00:44 file1
(省略)
drwxr-xr-x 2 user01 user01 4096 1月 1 10:51 公開
user01@ubuntu-vm:~$ ls -l dir/file2
-rwxr-xr-x 1 user01 user01 43 6月 10 00:46 dir/file2
dirディレクトリとfiel2ファイルのアクセス権を確認します。アクセス権が「755」に変わっていることが確認できます。
dir ・・・rwxr-xr-x(755)
file2・・・rwxr-xr-x(755)
4.ファイルのアクセス権を記号モードで変更
・「chmod u=rwx,g=rx,o=r file1
」コマンドを実行し、「ls -l file1
」コマンドでアクセス権を確認します。
file1のアクセス権を所有者に対して読み取り、書き込み、実行(rwx)、グループに対して読み取り、実行(rx)、その他のユーザーに対して読み取り(r)の「754」設定します。
user01@ubuntu-vm:~$ chmod u=rwx,g=rx,o=r file1
user01@ubuntu-vm:~$ ls -l file1
-rwxr-xr-- 1 user01 user01 43 6月 10 00:44 file1
file1ファイルのアクセス権を確認します。アクセス権が「754」に変わっていることが確認できます。
file1・・・rwxr-xr--(754)
5.ディレクトリ内のすべてのファイルに対して記号モードで実行権を追加
アクセス権の変更
まず、dirディレクトリとfile2ファイルのアクセス権を変更しておきます。
・「chmod -R 744 dir
」コマンドを実行し、「ls -l
」と「ls -l dir/file2
」コマンドでアクセス権を確認します。
user01@ubuntu-vm:~$ chmod -R 744 dir
user01@ubuntu-vm:~$ ls -l
合計 44
drwxr--r-- 2 user01 user01 4096 6月 10 00:46 dir
-rwxr-xr-- 1 user01 user01 43 6月 10 00:44 file1
(省略)
user01@ubuntu-vm:~$ ls -l dir/file2
-rwxr--r-- 1 user01 user01 43 6月 10 00:46 dir/file2
dirディレクトリとfiel2ファイルのアクセス権を確認します。アクセス権が「744」に変わっていることが確認できます。
dir ・・・rwxr--r--(744)
file2・・・rwxr--r--(744)
記号モードで実行権を追加
ディレクトリ内のすべてのファイルに対して記号「+」で実行権を追加します。
・「chmod -R +x dir
」コマンドを実行し、「ls -l
」と「ls -l dir/file2
」コマンドでアクセス権を確認します。
dirディレクトリとその中のすべてのファイルおよびサブディレクトリに対して実行権(x)を追加します。
user01@ubuntu-vm:~$ chmod -R +x dir
user01@ubuntu-vm:~$ ls -l
合計 44
drwxr-xr-x 2 user01 user01 4096 6月 10 00:46 dir
-rwxr-xr-- 1 user01 user01 43 6月 10 00:44 file1
(省略)
user01@ubuntu-vm:~$ ls -l dir/file2
-rwxr-xr-x 1 user01 user01 43 6月 10 00:46 dir/file2
dirディレクトリとfiel2ファイルのアクセス権を確認します。アクセス権が「755」に変わっていることが確認できます。
dir ・・・rwxr-xr-x(755)
file2・・・rw-r-xr-x(755)
6.ファイルとディレクトリの削除
この演習で作成したファイルとディレクトリを削除します。
・「rm -r file1 dir
」コマンドを実行し、「ls」コマンドで確認します。
user01@ubuntu-vm:~$ rm -r file1 dir
user01@ubuntu-vm:~$ ls
snap テンプレート ドキュメント ピクチャ 公開
ダウンロード デスクトップ ビデオ ミュージック
まとめ
「chmod
」コマンドは、Linuxシステムにおけるファイルおよびディレクトリのアクセス権を設定および変更するための重要なツールです。数値モードおよび記号モードを使用してアクセス権を指定でき、-R
オプションを使用することでディレクトリ全体に対する権限変更を行うことができます。これにより、システムのセキュリティと操作性を向上させることができます。