見落としがちなファイルの権限変更

サーバーにファイルやフォルダをアップロードした後に、うまく動作しなくて困ったことはよくありますよね。設定ファイルの記述を間違っていることもありますが、なかにはファイル権限が理由で正しく動作しない場合もありがちなんです。
それから、レンタルサーバーを使っていて認証方法などの設定変更をするときには、ファイル権限を変更する説明が書かれていたりします。例えば「chmod 700 .ssh」とかとか。。意味はわからないけど、とりあえず言われたとおりに変更してる人も多いかと思います。
説明が書かれているものはいいけど、説明のないものでファイル権限が理由でうまく動かなかったり、原因が見つからず諦めることもあると思います。
そこでファイル権限の変更方法を理解することで問題解決率をあげましょう!ということでchmodコマンドの使用方法についてまとめました。

chmodコマンド

ファイルやフォルダのアクセス権限を設定・変更します。ファイルやフォルダの「所有者」「グループ」「その他のユーザー」に対して、「書き込み」「読み込み」「実行」の権限を設定・変更します。
【書式】

$ chmod [ugoa][+-=][rwx],...

大きく2種類の記述方法があります。
1.記号による記述
2.数字による記述
「chmod 700 .ssh」のような記述方法は数字による記述です。同じ意味の記述を記号で書くと、「chmod u=rwx,g=,o= .ssh」となります。数字で記述したほうが簡単そうですよね。しかし数字の意味が分からないと簡単に書けそうにないので以下に説明します。

数字による記述方法

数字は3桁の8進数を使って記述します。3桁の8進数ってなんだ?ってことでまずはその説明を簡単にします。
3桁なので上記例のような「700」といった記述になります。8進数というのは「8」になると桁上りする数の数え方です。これを3桁で表しているので、3桁の合計が7となります(3桁だけで表すために8以上の数値は使わない)。また、chmodコマンドで記載する3桁は、それぞれの桁に「所有者」「グループ」「その他のユーザー」に設定の対象が割り当てられています。
アクセス権限変更
それぞれの桁が8進数で記載されているので「7」が最大数となります。0〜7の数字に3桁の8進数を使って「書き込み」「読み込み」「実行」を割当ています。数字にそれぞれの権限を割り当てるために、r:書き込み、w:読み込み、x:実行の権限設定を”rwx”の順番で数値にしています。例えば”rwx”の全て設定されていれば7になります。これは”r”が設定されていれば4、”w”が設定されていれば2、”x”が設定されていれば1となります。以下の表は数字の割当の一覧です。

0 ---
1 --x
2 -w-
3 -wx
4 r--
5 r-x
6 rw-
7 rwx

上記のコマンド例を読んでみると、「chmod 700 .ssh」は所有者に書き込み、読み込み、実行の権限を.sshファイルに設定していることがわかります。違う数値を設定してみると、例えば「chmod 644 .ssh」は所有者に書き込みと読み込み、グループに書き込み、その他のユーザーに書き込みの権限を設定していることが分かります。
これでアクセス権限の設定も思いのままですね。

シェアする