はじめに
chmodをみると、何故か 「ちょ、待てよ」 を連想してしまうのは自分だけでしょうか、、、?(キムタク縛り)
chmod: いわゆる change modeですね
(change mode、チェンジモード)は、UNIXおよびUNIX系オペレーティングシステムにおけるシェルコマンドの一種である。 ファイルやディレクトリのファイルモード(ファイルパーミッションなど)を変更するのに使われる。
wikipedia引用
ふむふむ。
ファイルパーミッション、つまり、ファイルの権限ですねえ
シェルコマンドの一種で、ファイルとディレクトリ、いわゆるフォルダ自体の、編集権限等を変えられるってことですな。
ファイルで、あんなことしたり…こんなことしたり…、ってのが決められるってことみたいです。
chmodコマンドの解説
一例あげたいと思います。
$ chmod 400 ~/.ssh/id_github_rsa
秘密鍵の権限を、所有者だけ読み取りにしますってものですけど、、
# 形式
$ チェンジモード 権限設定 ファイルパス
翻訳としては、
チェンジモードしてね、権限は400だよ。ファイルはホーム配下の.sshフォルダにあるid_github_rsaというファイルだよ。
ってことですね。
ただただ、400ってなんやねん って気になります、
chmodの権限の種類とまとめ
上記の例で、400とありますが、それはただの数字ではなく、ちゃんとした意味をもっています。
実際に、数字を使わない、となると、
rwxr-xr-x
といったように、指定しないといけません。
実際に上記は755を意味するのですが、暗号みたいですねw
某新感覚SNSしか思い出せませんん。
意味としては、
r:read(読取) w:write(書込) x:execute(実行)
ですが、
自分には肌が合わない、かつ、権限には番号指定ができるところが便利なので、
覚えちゃいましょう。
いつも忘れてしまうので、良質なメモとして残せらたらと!
番号が持つ権限の意味
以下、表にまとめました。
基本は、
4:read(読取) 2:write(書込) 1:execute(実行)
だけなのですが、足し算することで、いろんな権限が表現できるみたいです。
詳細の列に、足し算も追加してみました。
| 番号 | 権限 | 読取 | 書込 | 実行 | ※アルファベット | 詳細 |
|---|---|---|---|---|---|---|
| 7 | すべて許可 | ◎ | ◎ | ◎ | rwx | 4+2+1 |
| 6 | 読取 & 書込 | ◎ | ◎ | × | rw- | 4+2 |
| 5 | 読取 & 実行 | ◎ | × | ◎ | r-x | 4+1 |
| 4 | 読取のみ | ◎ | × | × | r-- | 4 |
| 3 | 書込 & 実行 | × | ◎ | ◎ | -wx | 2+1 |
| 2 | 書込 | × | ◎ | × | -w- | 2 |
| 1 | 実行のみ | × | × | ◎ | --x | 1 |
| 0 | すべて禁止 | × | × | × | --- | 0 |
番号の桁の意味
$chmod 700 ~/index.html
上記見てみると、700という三桁の数字になっていますが、その桁の部分は、**権限の対象(ターゲット)**を表していて、
七百ってよりかは、7,0,0みたいな意味合いが強いですな。
| 左の番号 | 真ん中の番号 | 右の番号 |
|---|---|---|
| 所有者 | グループ | その他一般 |
と、まあ、こんな感じの対象です。
グループって何ぞや?って話ですが…
Linuxはもともと、一つのコンピュータを複数人で扱うということが前提とされていて、
だから、ファイルやフォルダに、所有者の権限設定をするのが大切ってことですな。
勝手にいじくられてしまうと、困ってしまうから。
でも、一人ひとり全員に毎度毎度chmodを連発しても、それはそれで「ちょっ、待てよ」な状態なので、、、
グループとして、ファイルもしくはフォルダの権限設定をまとめられるっていう素晴らしい仕組みがあるってこと。
例えば、仕様書を、グループ内で共有したいという時に、グループだけに閲覧権限をつけて、共有するみたいな、こともできる
よくGoogleドキュメントとかで誰々に閲覧権限を付与するみたいな設定ありましたよね、あれかあれか。
ただ、そのグループからハブられたらめっちゃ悲しい、、、
その他一般人扱いな自分、、、
「権限ください!」って世界の中心で哀を叫びましょう。w
パーミッション設定の使用例
一般的な使用例は、上述なので、
※ちなみに、上位ユーザーの7は省略できる
これにフィーチャー(注目)したいです。
$chmod 64 ファイル名
このようなコマンドは、以下の表の通りになります。
驚きは、所有者が7の権限を持っているということ。
| 対象 | 番号 | 権限 | 読取 | 書込 | 実行 |
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
| 所有者 | 7 | 全て許可 | ◎ | ◎ | ◎ |
| グループ | 6 |読取 & 書込 | ◎ | ◎ | × |
| その他 | 4 |読取のみ | ◎ | × | × |
次に、もう一桁分を省略しましょう(所有者とグループ)
$chmod 4 ファイル名
このようなコマンドは、以下の表の通りになります。
驚きは、所有者とグループに7の権限が付与されるということ。
| 対象 | 番号 | 権限 | 読取 | 書込 | 実行 |
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
| 所有者 | 7 | 全て許可 | ◎ | ◎ | ◎ |
| グループ | 7 | 全て許可 | ◎ | ◎ | ◎ |
| その他 | 4 |読取のみ | ◎ | × | × |
全ユーザーに全て許可する場合は、
$chmod 7 ファイル名
これで、全ユーザーに全ての権限を付与されます。
最後の一桁だけは省略できないんですねええ〜〜
なんだか、オーシャンズ7みたいな、オシャレな書き方になってしまいましたねえ
| 対象 | 番号 | 権限 | 読取 | 書込 | 実行 |
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
| 所有者 | 7 | 全て許可 | ◎ | ◎ | ◎ |
| グループ | 7 | 全て許可 | ◎ | ◎ | ◎ |
| その他 | 7 | 全て許可 | ◎ | ◎ | ◎ |
まとめ
ということで、まとめます。
-
chmodはチェンジモードの略。 -
chmodは、各ユーザーに、ファイル/フォルダのパーミッションを設定できるコマンドだった - rwx(read, write, execute)だけでなく、数字(4:read, 2:write, 1:execute)で置き換え可能
- 数字は足し算できる
- 全権限は**
7** - コマンドで、上位ユーザーに全て許可する場合は、
7を省略できる。
以上です、
ありがとうございました!