chmodとファイルの権限


前提

今回の記事は、chmodを最近使い始めた私が理解したこと整理するために書いたものです。
この記事でファイルの権限等について、全てが分かるわけではないのでご了承ください。
今回の記事で紹介するのはlinuxコマンドとなります。
使用マシンは"macbookpro(2020) 13インチ"です。

linuxコマンドでファイルの権限を確認する方法

以下のコマンドで確認できます。

ls -l

権限の見方

画像は私の環境のものです。
(user名が写っていますが、qiitaのアカウント名と同じなので加工しておりません)

今回は一番左の権限について("drwxr-xr-x"の部分)のみ触れていきます。

  • 文字数
    添付画像を見て分かる通り、全てハイフン含め10文字になっていることがわかります。
    これら10文字の文字列を、1文字-3文字-3文字-3文字に区切って見ていきます。
    -rw-r--r--
    drwxr-xr-x
    drwxr-xr-x

  • 最初の1文字目
    "-(ハイフン)"または、"d"が表示されている部分です。
    これは、
    "-(ハイフン)":ファイル(viで開けるやつだと思います)
    "d":ディレクトリ

  • 2〜4文字目、5〜7文字目、8〜10文字目
    2〜4文字目
     → 所有者の権限を表しています。今回だと、"matsumotoyuutarou"の部分が所有者になります。
    5〜7文字目
     → 所有者グループの権限を表しています。今回だと、staffの部分です?
    8〜10文字目
     → その他(所有者、所有者グループ以外)の権限を表しています。

    r, w, x, - のいずれかが入っていることがわかります。
    2〜4文字目, 5〜7文字目, 8〜10文字目 の文字はそれぞれ必ず以下それぞれの権限があればrwxの順番で表示されることになっています。
    で、権限がない部分は"-"が入るわけです。
    例えば、読み取り可能で、それ以外は不可な場合は"r--"のようになります。
    "r":読み取り可能
    "w":書き込み可能
    "d":実行可能

chmodコマンド

chmod 777 ファイル名

例えば、上記のようなコマンドを入力すると、ファイルの権限を変えることが可能です。
今回は数字の部分(777のところ)を記載します。
前述で出てきたr, w, xには、それぞれ数字があり、以下のような数字が割り振られています。
r:4
w:2
x:1

777の3桁の数字は、以下を表します。
一番左の桁:前述の2〜4文字目の権限
真ん中の桁:前述の5〜7文字目の権限
一番右の桁:前述の8〜10文字目の権限

で、777の3桁それぞれの数字自体は、どの操作が可能なのかを表していて、可能な操作の数字を足した数になっています。
例えば、"7"は読み取り、書き込み、実行全てが可能になります。
読み取りと書き込みだけを可能にする場合は、"6"になるといった感じです。

ファイルaが「所有者の読み取りのみ可能」(r--------)だとします。
これを、「所有者と所有グループが読み込みと書き込み可能、その他が読み込みのみ可能」の状態にしようとすると、以下のようなコマンドになります。

chmod 664 ファイルa

最後に

今回は、最近学んだことを整理するために記事を書きました。
分かりづらい部分や、間違いがありましたらご指摘いただけますと幸いです。