##chmodコマンドとは
- ファイルのパーミッションを設定するコマンド。
- 具体的には、
ls -l
コマンドで出力される-rw-r--r--
の部分を指す - 基本形は
chmod オプション ファイル名
- オプションの設定方法は数字による設定と、アルファベットを使った設定の2種類ある。
##パーミッションの読み方
-rwxr--r-x
の10文字は
###ー,rwx,r--,r-x に分けられる
最初のーは、ファイルの種別を表す。
種別 | 意味 |
---|---|
- | ファイル |
d | ディレクトリ |
l | シンボリックリンク |
2文字目から4文字目(rwx)は、所有者のファイル権限を示す
5文字目から、7文字目(r--)は、所有グループのファイル権限を示す
8文字目から10文字目(r-x)は、その他のユーザーのファイル権限を示す
rwxそれぞれには、以下の意味がある。
記号 | 意味 | 詳細 |
---|---|---|
r | 読み取り権限 | ファイル、ディレクトリの中身を参照できる。(ls findなど) |
w | 書き込み権限 | ファイル、ディレクトリの作成、更新、削除ができる(mkdir touch rm mv など) |
x | 実行権限 | ファイル、ディレクトへのアクセス。ディレクトリへの移動ができる(cd など) |
以上のことを踏まえて、いくつか例を挙げる。確認していただきたいです。
`-rwxr--r--`の場合
ファイルの権限を示す 所有者は、読み取り、書き込み、実行の全ての権限を持っている 所有グループ、その他のユーザは、読み取り権限のみ持っている`dr--r--r--`の場合
ディレクトリの権限を示す 全てのユーザーは、読み取り権限しかない##数字による権限設定
$ ls -l
-rw-r--r-- 1 user group 9 1月 1 00:00 hoge.txt
$ chmod 764 hoge.txt
$ ls -l
-rwxrw-r-- 1 user group 9 1月 1 00:00 hoge.txt
上記のコマンドは、ファイルの権限の確認 → 変更 → 確認の順にコマンドを実行している
chmod 764 hoge.txt
の764
の部分でパーミッションを変更しているが、このことについて詳しく説明する。
数字は、7、6、4、で分けられる。
- 7の部分は、所有者の権限。
- 6は、グループの権限。
- 4は、その他のユーザーの権限を示している
そして数字は、下の表の合計値を示している。
数字 | アルファベット | 意味 |
---|---|---|
4 | r | 読み込み権限 |
2 | w | 書き込み権限 |
1 | x | 実行権限 |
以上のことを踏まえて、例をいくつか挙げます。確認していただきたいです。
chmod 755 hoge.txt
の場合
ls -l
-rwxr-xr-x 1 user group 9 1月 1 00:00 hoge.txt
所有者は、全ての権限を、持っている
グループとその他のユーザーは、読み込みと実行権限を持っている
chmod 700 hoge.txt
の場合
ls -l
-r--r--r-- 1 user group 9 1月 1 00:00 hoge.txt
所有者は、全ての権限を、持っている
グループとその他のユーザーは、何も権限を持たない
##アルファベットによる権限の設定
アルファベットで指定する場合は、以下のようになる
$ ls -l
-rw-r--r-- 1 user group 9 1月 1 00:00 hoge.txt
$ chmod u+x hoge.txt
$ ls -l
-rwxr--r-- 1 user group 9 1月 1 00:00 hoge.txt
アルファベットで設定するときは、chmod + 変更対象 + 変更方法 + 変更内容 + ファイル名
が基本形になる
変更対象とは、以下のことを指す
アルファベット | 意味 |
---|---|
u | 所有者 |
g | グループ |
o | その他のユーザー |
a | 全てのユーザー |
変更方法とは、以下のことをさす
アルファベット | 意味 |
---|---|
= | 指定した権限にする |
+ | 指定した権限を加える |
ー | 指定した権限を減らす |
変更内容とは以下のことを指す
記号 | 意味 |
---|---|
r | 読み取り権限 |
w | 書き込み権限 |
x | 実行権限 |