Linux のファイル権限メモ

✍🏼 作成日 2019年09月28日   
❗️ 注意:この記事が作成されてから既に 日が経過しています。情報の鮮度にご注意ください
🖥  説明:この記事は、かつてLinuxの基礎を学んでいた際に書いたブログ記事で、古いWordPressブログから移行したものです。

はじめに

コマンドラインを頻繁に使用する方は、ファイルの前に-rw-r--r--のような10文字の文字列を見かけることがあるでしょう。これは、異なるユーザーグループが現在のファイル/フォルダに対して持つ操作権限を表しています。例:

1
2
3
4
drwxr-xr-x   9 x  staff   288  9 25 23:37 .
drwxr-xr-x 15 x staff 480 9 24 23:48 ..
drwxr-xr-x 16 x staff 512 9 26 08:18 .git
-rw-r--r--@ 1 x staff 68 9 13 00:34 README.md

以下、左から順に説明します。

位置と文字の意味

  1. 1文字目は現在のファイルがフォルダかファイルかを示します。ファイルの場合は-、フォルダの場合はd、シンボリックリンクの場合はlです。
  2. 2~4文字目はファイルの所有者(作成者)の権限を示します。
  3. 5~7文字目はファイルの所有ユーザーグループ内のユーザーの権限を示します。
  4. 8~10文字目は現在のユーザーグループ以外の他のユーザーの権限を示します。
  5. 2~4、5~7、8~10文字目の各3文字は一組の権限情報を表します:
    1. 1文字目はrで、readの権限)を表し、10進数では4、2進数では100です。この権限がない場合は-で表します。
    2. 2文字目はwで、writeの権限)を表し、10進数では2、2進数では010です。この権限がない場合は-で表します。
    3. 3文字目はxで、execute执行の権限)を表し、10進数では1、2進数では001です。この権限がない場合は-で表します。
  6. rootユーザーは常にすべての権限(rwx)を持ち、10進数では777(各桁を足した4 + 2 + 1)、2進数では111で表されます。

-r-xrwxr--は、現在のファイルが通常のファイルで、所有者は読み取りと実行の権限があるが書き込みはできないことを示します。所有ユーザーグループの他のユーザーは読み取り、書き込み、実行が可能で、それ以外のユーザーは読み取りのみ可能で書き込みと実行はできません。

基本的な使い方

chmod hello.jsファイルを読み書き実行可能に変更するには: chmod 777 hello.js または chmod rwx hello.js

その他

数字で権限を表す場合(数字表記には文字表記の最上位ビット-/d/lの情報が含まれません)、4桁の数字で表すこともできます。つまり権限の前に1桁追加し、例えば0777のようにします。最上位の0はsuidとguidの概念を表します:

  1. suidは、対応するスクリプトを実行するユーザー(実行権限がある場合)がファイルの所有者の権限(7)を持つことを意味します。
  2. guidは、対応するスクリプトを実行するユーザーがファイルの所有ユーザーグループの権限(5)を持つことを意味します。

suidを設定するには0を4に、guidを設定するには0を2に変更します: 4777と2777、または両方設定する場合は6777です。

- EOF -
この記事の初出: Linux のファイル権限メモ - Xheldon Blog