ファイルのアクセスフラグにはいくつのビットがありますか?

ファイルのアクセスフラグにはいくつのビットがありますか?

Linuxファイルシステムでは、ファイル権限は何ビットを占めますか?

答え1

他の答えに追加:

伝統的なUnix権限は次のように分けられます。

  • 読む( r)
  • 書く( w)
  • ファイル/アクセスディレクトリの実行( x)

これらの各々はビットとして記憶される。ここで、1 は許可されていることを意味し、0 は許可されないことを意味します。

たとえば、読み取り専用アクセス(通常は書き込み)はバイナリまたは8進数r--で保存されます。1004

許可されるアクセスを決定するこれらの権限には3つのグループがあります。

  • ファイル所有者
  • ファイルグループ
  • 他のすべてのユーザー

これらはすべて同じ変数に一緒に保存されます。たとえば、rw-r-----所有者への読み取りと書き込み、グループへの読み取り専用、他人へのアクセスなし、バイナリ110100000、8進数で保存されます640

これは9ビットになります。

それには3つの特別なビットがあります:

  • 設定値
  • 設定
  • 難しい

man 1 chmodこれについて詳しくは、次をご覧ください。

最後に、4ビットはファイルタイプ(通常のファイル、ディレクトリ、パイプ、デバイスなど)を格納するために使用されます。

これはinodeに一緒に保存され、合計16ビットを構成します。

答え2

どんな権限がありますか?デフォルトの権限は16ビットです。 ext2は32ビットを使用し、他の32ビットはファイルフラグ()に使用され、chattr(1)POSIX ACLも可変スペースを使用します。/usr/include/linux/ext2_fs.h詳細より。 (ext3とext4はext2に基づいて構築されており、ほとんど同じ構造を使用しています。)

答え3

ファイルに関する情報は、inodeというデータ構造に格納されます。この構造には、権限を含むモードフィールドがあります。私のシステムのこのフィールドは、符号なしの短い2バイト16ビットです。

直接確認するには、Linuxのソースコードでfs.hを確認してください。

関連情報