PerlならサンプルコードPerl入門

2008-08-18

ファイルパーミッションの表現方法

  1. Perl
  2. ファイル操作

 ファイルパーミッションの表現方法について解説します。

 まず、「読み込み権限」「書き込み権限」「実行権限」を表現する方法について解説します。UNIXにおいては、これらを3桁のビット列で表現します。3桁のビットの意味は以下のようになります。

 読み込み書き込み実行
111
不可000

 3桁目が読み込み権限を表すビット、2桁目が書き込み権限を表すビット、1桁目が実行権限を表すビットになります。1であれば権限があり、0であれば権限がないということを意味します。

 たとえば、ビット列が110ならば、読み込み権限と書き込み権限があり、101ならば読み込み権限と実行権限があります。

ファイルパーミッションの8進数表現

 ファイルパーミッションは単なるビット列ですが、便宜のために8進数で指定することが多いです。chmodというコマンドでパーミッションを変更する場合、sysopen関数でパーミッションの指定する場合などに8進数を使います。

 2進数(ビット列)と8進数の対応を記載しておきます。

2進数8進数2進から8進への変換
00004×0  +  2×0  +  1×0
00114×0  +  2×0  +  1×1
01024×0  +  2×1  +  1×0
01134×0  +  2×1  +  1×1
10044×1  +  2×0  +  1×0
10154×1  +  2×0  +  1×1
11064×1  +  2×1  +  1×0
11174×1  +  2×1  +  1×1

 この中でよく使われるのが、6(110,読み込みと書き込み)、 7(111,読み込みと書き込みと実行)、4(100,読み込み)、5(101,読み込みと実行)の4つです。この4つの数字については覚えておくと便利です。

ファイルパーミッションの文字表現

 ファイルパーミッションは人間が読みやすいように文字で表現されることも多いです。chmod でパーミッションを指定するときや、ls -l コマンドでファイルの詳細情報を表示するときに使われたりします。

 読み込み権限のビットは「r」、書き込み権限のビットは「w」、実行権限のビットは「x」で表現されます。ビットが立っていない場合は「-」で表現されます。

 これを踏まえて対応表をもう一度作って見ます。

2進数8進数文字表現
0000- - -
0011- - x
0102- w -
0113- w x
1004r - -
1015r - x
1106r w -
1117r w x

 この対応表を書けるようになれば、パーミッションの理解は完璧です。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証