ファイルの属性とその変更

  1. ファイルの属性

    ファイルやディレクトリの属性を知るには、-l のオプション付き で、ls コマンドを発行します。

       > ls -l 
    
    例えば、ls -lF を実行すると、
    
       drwx------   4 kanemaru other        512 Jun  6 13:24 Mail/
       -rw-r--r--   1 kanemaru other      89692 Jul  8 14:45 PRAC011.dvi
       -rw-------   1 kanemaru other         14 Aug  7 09:18 dead.letter
       drwxr-xr-x   2 kanemaru other        512 Jun 19 13:40 dvifile/
       -rw-r--r--   1 kanemaru other     239036 Jun  1 12:16 dvifilels
    
    というように表示されます。

    最初の"d r w x - "などの文字がつらなった 10 桁が、ファイルの 属性を表します。次の数字は、ディレクトリ内のディレクトリの数(ファイ ルの場合には常に1)、続いて、所有者と所有グループ(以下、グループ)、 次がファイルの大きさ(ディレクトリの場合は常に 512) です。その後ファイルの作成・更新日、ファイル・ディレクトリ名と続きます。

    すなわち、属性、ディレクトリ数、所有者、グループ、ファイルの大きさ、ファイルの 作成・更新日、ファイル名、という順番という順番になっています。

    d r w x の意味は、

       d  ディレクトリであることを示す(先頭にのみ付く)
       r  読み込み権
       w  書き込み権
       x  実行権
    
    です。(これ以外に、s のビットが立っているものもありますが、ここでは説明略)

    実行権は、コマンドやスクリプトなどの実行ファイル以外にも、通常はディレクトリにも与えます。

    この読み書き実行権は、所有者グループ、その他のユーザ(以下、その他)に 対して別々に指定できます。10桁の文字の頭を 0 番目とすると、

    • 1〜3 番目が、所有者に対する属性、
    • 4〜6 番目が、グループに対する属性、
    • 7〜9 番目が、その他に対する属性

    を示します。

  2. ディフォルトの属性

    普通にファイルやディレクトリを作成した場合の属性は次の ようになっています。

    ファイルを作成した場合

         -rw-r--r-- 
    ディレクトリを作った場合
         drwxr-xr-x 
    このように、ディフォルトの属性は、所有者のみに書き込み権 が与えられ、全ユーザに読み込み権が与えらています。 また、ディレクトリには、全ユーザに実行権が与えられている ことに注意して下さい。実行権が与えれられていないとそのディ レクトリにアクセスすることができません。

  3. 属性の変更

    属性の変更には、次の2つのやり方があります。

    • 数字を使う方法 所有者、グループ、その他のそれぞれの rwx に対して、
             r = 4 (=22)
             w = 2 (=21)
             x = 1 (=20) 
      としてそれをたし合わせて、それを所有者、グループ、その他の 順に並べます。例えば abc というファイルを、
               chmod 751 abc 
      とした場合には、
            -rwxr-x--x 
      となります。

    • + - を使う方法

      所有者に対する属性を変更する場合

      [例] 所有者に実行権を与える。

            chmod u+x abc 
      グループに対する属性を変更する場合

      [例] グループに書き込み権を与える。

  4. chmod g+w abc
    その他に対する属性を変更する場合

    [例] その他から読み込み権を削除する。

          chmod o-r abc
    + の後の、u はユーザ(owner)、g はグループ、o はその他(ユーザとグループ以外)、a は全員を意味します。また、chmod -r abcと、u, g, o, aを省略した場合は、chmod a-r abcと同じ意味になります。

  5. 所有者、グループの変更

    #この変更は通常 root 権限を持っていないとできません。

    abc というファイルまたはディレクトリの所有者を、hoge に変更する。

          chown hoge abc 
    abc というファイルまたはディレクトリの所有グループを、banana に変更する。
          chgrp banana abc