はじめに
Linux と書きましたが、MacOS でも大体一緒です。
初心者向けにできるだけ分かりやすく説明したいと思います。
環境構築をしたりするときに以下のような謎のコマンドを見て
$ chmod 777 foo.text
「権限の変更をしてるらしいが、 777
ってどういう意味?」と思ったり
ls -l
を実行すると
$ ls -l sample.rb
-rw-r--r-- 1 taro staff 176 2 18 12:00 sample.rb
-rw-r--r--
ってなんだ..?
ということがあると思います。
パーミッションとは何か
パーミッションとは
所有者・グループ・それ以外 が ファイルやディレクトリに対して 読取・書込・実行
を行えるかどうかの許可があるかどうかです。
※所有者とは何か、グループとは何かなどについてはググってみてください。
※ディレクトリの読取・書込・実行 とは何? ってなった方もググってみてください、ここでは割愛します。
例えば...
所有者 は 読取・書込・実行 全てがができる
グループ は 読取・実行 だけができる
それ以外 は 読取 だけができる
などです。
ちなみに上記の例でいうとファイルの権限は -rwxr-xr--
や 754
と表されます。
謎の記号 -rwxr-xr--
や 754
についての説明
-rwxr-xr--
(アルファベット + ハイフン形式)
こちらについてはなんとなく想像つくかもしれません。
r
が読取、 w
が書込、 x
が実行を表しています。
こちらを分解すると以下のようになります。
1文字目 | 2~4文字目 | 5~7文字目 | 8~10文字目 |
---|---|---|---|
ファイル or ディレクトリ | 所有者 | グループ | それ以外 |
- (ファイル) | rwx (読・書・実) | r-x (読・実) | r-- (読) |
この表を見ればもう大丈夫だとは思いますが、一応解説します。
1文字目はファイルかディレクトリかを表しています。ファイルの場合は -
、ディレクトリの場合は d
で表されます。
もし上記がディレクトリの権限だったら drwxr-xr--
になります。
754
(数字3桁形式)
こちらについては初見では全く想像がつかないと思います。
こちらも分解してみましょう。
1文字目 | 2文字目 | 3文字目 |
---|---|---|
所有者 | グループ | それ以外 |
7 | 5 | 4 |
この表のようになります。
所有者 → グループ → それ以外の順で表現しているのは -rwxr-xr--
の形式の場合と一緒ですね。
しかし、
「いやいや、数字一桁だけで読取・書込・実行それぞれの権限が表せるのかよ...」
と思った方もいるかもしれませんが...
読取を4
、書込を2
、実行を1
としてその和で表現すると表せます。
例えば...
7 の組み合わせは 4 + 2 + 1 の一通りで 権限は 読取・書込・実行 となります。
6 の組み合わせは 4 + 2 の一通りで 権限は 読取・書込 となります。
5 の組み合わせは 4 + 1 の一通りで 権限は 読取・実行 となります。
こんなふうに 読取を4
、書込を2
、実行を1
と定義してその和で表すことで、数字一桁でも3つの権限の表現ができるんですね。
覚えるコツ(余談)
自分は、
「読み書き実行4・2・1!、読み書き実行4・2・1! ~ 」と繰り返し唱えたら1分ほど覚えました。
※ 特に覚えなくてはならないわけではないですが、よく使うので覚えるのをおすすめします。
練習問題
644
の所有者・グループ・それ以外のそれぞれの権限は何か?
(※答えはググってください!)