LinuxOSでファイルやディレクトリへのアクセス権限を変更するchmodの使い方

Linuxでは「パーミッション」と呼ばれる「ディレクトリやファイルへのアクセス権限」によって、権限者以外のファイルやディレクトリアクセス権限を制御してセキュリティを担保しています。

このアクセス権減を変更するコマンドである「chmod」(チェンジモード)の使い方を解説します。



chmodコマンドの基本的な使い方

「chmod」コマンドは、ファイルやディレクトリへのアクセス権限を変更するコマンドです。

> chmod nnn (ファイル名又はディレクトリ名)

※「nnn」は「1から7」までの数字が入る(詳細は後述)

> chmod 777 textfile.txt
> ls
rwxrwxrwx root root 3452 textfile.txt

ファイルやディレクトリへのアクセス権を示すパーミッションの意味

「ls」コマンドでファイルやディレクトリを表示した時に、「rwxrwxrwx」や「rwxr–r–」等の表示があります。

「rwxrwxrwx」や「rwxr–r–」等は9文字で構成されていますが、先頭から3文字ずつに意味を持たせています。

ちなみに、実際「ls」コマンドで表示した時は全体で10文字ありますが、先頭1文字は「ファイルであるか、ディレクトリであるかの区分」です。

  1. 先頭1文字が「d」は「ディレクトリ」であることを意味する
  2. 先頭1文字が「-」は「ファイル」であることを意味する
  3. 先頭1文字が「l」(エル)は「シンボリックリンク」であることを意味する

10文字の2文字目以降が、下記の通りパーミッションを意味しています。2文字目~9文字目の9文字が示す意味を下記に説明します。

9文字の1文字目から3文字目はファイル又はディレクトリ所有者のアクセス権限

rwxrwxrwx」は下記の意味です。

  1. 「r」はファイル又はディレクトリ所有者の読み込み権限
  2. 「w」はファイル又はディレクトリ所有者の書き込み権限
  3. 「x」はファイル又はディレクトリ所有者の実行権限

9文字の4文字目から6文字目はファイル又はディレクトリ所有者と同じグループユーザのアクセス権限

「rwxrwxrwx」は下記の意味です。

  1. 「r」はファイル又はディレクトリ所有者と同じグループユーザの読み込み権限
  2. 「w」はファイル又はディレクトリ所有者と同じグループユーザの書き込み権限
  3. 「x」はファイル又はディレクトリ所有者と同じグループユーザの実行権限

9文字の7文字目から9文字目は所有者でも同じグループでも無いユーザのアクセス権限

「rwxrwxrwx」は下記の意味です。

  1. 「r」はファイル又はディレクトリ所有者でも同じグループでも無いユーザの読み込み権限
  2. 「w」はファイル又はディレクトリ所有者でも同じグループでも無いユーザの書き込み権限
  3. 「x」はファイル又はディレクトリ所有者でも同じグループでも無いユーザの実行権限

chmodコマンドで変更できるパーミッション一覧

「パーミッション」とは、Linuxのユーザ毎に、ディレクトリやファイルへのアクセス権限をどこまで与えることを示すものです。このパーミッションについて解説します。

chmodコマンドで使う「777」等の数字の意味

まず、「777」等は下記の意味を持ちます。

  1. 1文字目はファイル又はディレクトリ所有者のアクセス権限を付与する数字
  2. 2文字目は所有者と同じグループユーザのアクセス権限を付与する数字
  3. 3文字目は上記以外のユーザにアクセス権限を付与する数字

次に、読み込み等の各権限には、各々下記の数字が割り当てられています。

  1. 「r」には「4」を割り当て
  2. 「w」には「2」を割り当て
  3. 「x」には「1」を割り当て

上記数字の足し算によって、付与する権限を変えることができます。

例えば、読み込み権限である「r」のみを、全ユーザに権限付与したい場合は、

「444」

となります。

また、読み込み権限である「r」と実行権限である「x」を全ユーザに権限付与したい場合は、「r」の「4」と、「x」の「1」を足した数字は「5」であるため、

「555」

となります。

もし、ファイル又はディレクトリ所有者へすべてのアクセス権限を与えたい場合は、

「700」

となります。権限を全て与えない場合は「0」とします。

具体的な権限付与のコマンド入力方法

権限付与のパターン毎に、具体的なコマンド入力の方法を解説します。

コマンド入力の注意点として所有者は「6」以上の権限付与とすること

権限付与の数字で「6」は「rw-」となります。

具体的には「読み込みと書き込み権限を与える」ことになりますが、所有者のユーザには、最低限「読み込みと書き込み権限」が必要です。もし、この権限が無くなると、誰もそのディレクトリやファイルを編集できなくなるからです。

「chmod 777」は全てのユーザに全ての権限を与える

> chmod 777 (ファイル名又はディレクトリ名)

rwxrwxrwx

「chmod 755」は所有者以外に書き込みと実行権限を与える

> chmod 755 (ファイル名又はディレクトリ名)

rwxr-xr-x

「chmod 700」は所有者へのみ全権限を与える

> chmod 700 (ファイル名又はディレクトリ名)

rwx——

「chmod 666」は全てのユーザに読み込みと書き込み権限を与える

> chmod 666 (ファイル名又はディレクトリ名)

rw-rw-rw-

「chmod 644」は所有者に読み込みと書き込み権限を与えて、所有者以外に読み込み権限のみ与える

> chmod 644 (ファイル名又はディレクトリ名)

rw-r–r-