Linuxコマンド | ファイル管理 | chmod ファイル/ディレクトリ権限変更

Linux/UNIXの権限

Linux/UNIXの権限は10文字で表されます。

たとえば、ls -lrtコマンドでディレクトリやファイルを確認すると、次のように表示されます。

% ls -lrt
total 8
-rwxrw-r--   1 kimkc  staff   37  5 13 08:40 README
drwxr-xr-x   8 kimkc  staff  256  5 13 08:40 java--tutorial

10文字の意味を理解するには、「1文字 / 3文字 / 3文字 / 3文字」に分けて見るとわかりやすくなります。

  • ディレクトリまたはファイルの種別(1文字)
  • 所有者の権限(2-4文字目)
  • グループの権限(5-7文字目)
  • その他の権限(8-10文字目)

確認すべき権限部分は、先頭のdrwxのような部分です。

  • r: 読み取り権限
  • w: 書き込み権限
  • x: 実行権限

もう一度例を見て確認します。

  • 1文字目のdはディレクトリ、-はファイルを意味します。つまり例では、1つはディレクトリで、1つはファイルです。
  • 次の3文字(所有者の権限)rwxは、所有者に読み取り、書き込み、実行の権限があることを意味します。
  • 次の3文字(グループの権限)rw-は、グループに読み取りと書き込みの権限だけがあることを意味します。
  • 最後の3文字(その他の権限)--rは、その他のユーザーに読み取り権限だけがあることを意味します。

chmodコマンド

chmodコマンドは、ファイルの権限を変更します。chmodは「change mode」の略です。

r/w/x権限をそれぞれ数値で表すと、4/2/1です。各部分の権限は単純な足し算で指定します。

  • 7/7/7は、所有者の権限 / グループの権限 / その他の権限を意味します。数値の74+2+1です。

たとえば、chmod 777 READMEを実行すると、READMEファイルの権限は-rwxrwxrwx777)に変更されます。

構文

chmod [オプション (例: 744)] [変更するファイルの場所/名前]
  1. 権限は数値で表され、読み取り(4)、書き込み(2)、実行(1)に分かれます。
  2. 読み取りと書き込み = 4+2=6、読み取りと実行 = 4+1=5、書き込みと実行 = 2+1=3、読み取り、書き込み、実行 = 4+2+1=7です。
  3. 権限は3つの領域で設定され、自分 / 自分が属するグループ / その他のグループに分かれます。
  4. 自分は読み取り、所属グループは書き込み、その他のグループは実行の場合は421です。