ファイルやディレクトリに対して、誰がどんな操作をできるかを定めた権限設定。
アクセス権(パーミッション)とは、ファイルやディレクトリ(=フォルダ)ごとに「誰が・どんな操作をしてよいか」を定める権限設定のことです。Unix系のOS(LinuxやmacOSなど)で広く使われます。
身近な例で考えると、会社の書類の扱いに似ています。作った本人は自由に編集でき、同じ部署の人は閲覧だけ、社外の人は触れない、というように相手によって扱いを変えますよね。アクセス権はこれをファイル単位で設定する仕組みです。
上のツールで▶ボタンを押すと、3者それぞれに権限を割り当て、最後に8進数の数字(例 755)にまとめる流れを1ステップずつ確認できます。
アクセス権は3者 × 3種の組み合わせで決まります。まず権限を持つ「対象者」が3者います。
・所有者(user):そのファイルを作った本人
・グループ(group):同じグループに属する人たち
・その他(other):それ以外の全員
そして、各者に与えられる権限は3種類です。
・読取り(r:read):中身を見る
・書込み(w:write):内容を変える
・実行(x:execute):プログラムとして動かす
許可するものに印を付ける、と考えると分かりやすいです。許可がない権限は「-」で表します。上のツールの表で、3者それぞれに r/w/x の印が付く様子を確認できます。
アクセス権が必要な理由は、1台のコンピュータを複数の人が共有することがあるからです。自分の大切なファイルを、他の利用者に勝手に読まれたり消されたりしては困ります。
アクセス権を設定しておけば、次のようなことが実現できます。
・自分だけが編集できる:所有者に読取り・書込みを許可、他者には読取りだけ(または禁止)
・チームで共有する:グループには読取りと書込みを許可、社外(その他)には閲覧も禁止
・全員に公開する:誰でも読めるが、書き換えは所有者だけ
アクセス権がないとすべてのユーザーがすべてのファイルを自由に操作できてしまい、個人情報の流出や大切なファイルの誤削除が起きてしまいます。アクセス権はコンピュータを安全に使い続けるための「仕切り」の役目を果たしています。
r・w・x の3種類の権限はファイルとディレクトリで意味が少し違います。ディレクトリに対しては次のように解釈します。
・r(読取り):ディレクトリの中にあるファイル一覧を見ることができる
・w(書込み):ディレクトリの中にファイルを追加・削除できる
・x(実行):そのディレクトリの中に入って移動できる(=中のファイルにアクセスできる)
特に x(実行)が重要です。ファイルの中身を読む権限があっても、そのファイルが入っているディレクトリの x 権限がなければ、そこにたどり着けません。ディレクトリの x は「扉を開けて中に入る鍵」のようなものです。x なしの r だけでは「部屋の外から部屋の名前が分かる」だけで、中に入れません。
rwx の印を毎回書くのは長いので、数字3桁で短く表す方法がよく使われます。仕組みはとても単純で、r=4・w=2・x=1 という重みを、許可した権限ぶんだけ足すだけです。
足し算の結果は1桁の数字(0〜7)になります。これは8進数(=0〜7の8種類だけで数を表す書き方)の1桁にぴったり収まります。
・rwx = 4+2+1 = 7
・r-x = 4+0+1 = 5
・rw- = 4+2+0 = 6
所有者・グループ・その他の順に1桁ずつ並べると、3桁の数字になります。
rwx r-x r-x
7 5 5 → 755
$ chmod 755 file # この数字で一括設定
「755」と書けば「rwxr-xr-x」と同じ意味を、たった3文字で表せます。chmod(change mode)コマンドにこの数字を渡すと権限をまとめて設定できます。上のツールの計算例で、各者の足し算と最終的な3桁を確認できます。