chmodコマンド
ファイルやディレクトリのアクセス権を変更できるコマンドです。
書式
chmod [オプション] アクセス権 ファイル名
オプション
オプション | 説明 |
-v | 詳細を表示する。 |
-R | 指定したディレクトリ内全てのアクセス権を変更する。 |
-f | エラ〜メッセージを表示しない。 |
ファイルとディレクトリのアクセス権について
アクセス権はファイルとディレクトリにそれぞれ付与できるので、以下の表で確認します。
権限 | ファイル | ディレクトリ |
r(読み) | ファイルの内容を読みれる。 | ディレクトリ内の内容を参照できる。 |
w(書き) | ファイルに書き込むことが出来る。 | ディレクトリ内に新規ファイルの作成、ファイルの名前変更・削除ができる。 |
x(実行) | ファイルを実行できる。 | ディレクトリ内へのファイルアクセス、ディレクトリへの移動ができる。 |
chmodでアクセス権を付与することはよく実施しますが、ディレクトリのアクセス権を意識したことがあまり無かったので、検証してみたいと思います。
検証
※以下検証はCentOS8で検証しています。
まずは土台となる環境を作りました。いろいろとやっていますが、treeコマンドでざっくりとした部分は確認できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
[root@localhost testuser]# pwd /home/testuser [root@localhost testuser]# chmod 777 /home/testuser [root@localhost testuser]# umask 0022 [root@localhost testuser]# touch moti01 moti02 moti03 [root@localhost testuser]# mkdir /home/testuser/ricecake01 [root@localhost testuser]# cd ricecake01/ [root@localhost ricecake01]# touch Moti01 Moti02 Moti03 [root@localhost ricecake01]# cd .. [root@localhost testuser]# cp -R /home/testuser/ricecake01/ /home/testuser/ricecake02/ [root@localhost testuser]# cp -R /home/testuser/ricecake01/ [root@localhost testuser]# tree /home/testuser/ /home/testuser/ ├── moti01 ├── moti02 ├── moti03 ├── ricecake01 │ ├── Moti01 │ ├── Moti02 │ └── Moti03 ├── ricecake02 │ ├── Moti01 │ ├── Moti02 │ └── Moti03 └── ricecake03 ├── Moti01 ├── Moti02 └── Moti03 |
検証1
ではでは、chmodコマンドの実行結果を表示させます。
1 2 |
[root@localhost testuser]# chmod 777 -v moti01 'moti01' のモードを 0644 (rw-r--r--) から 0777 (rwxrwxrwx) へ変更しました |
どういうわけか、パーミッションとオプションを逆に書いてもできました。
検証2
次にディレクトリ内のファイルについても全てパーミッションを変更してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
[root@localhost testuser]# ls -l /home/testuser/ricecake01/ 合計 0 -rw-r--r--. 1 root root 0 9月 4 02:22 Moti01 -rw-r--r--. 1 root root 0 9月 4 02:22 Moti02 -rw-r--r--. |