GNUを使用してファイルシステムを調べるとき、特にこのエントリの/引数にstat
使用できるフォーマットシーケンスがたくさんあります。--format
--printf
%f Raw mode in hex
あまり意味がありません。 %aアクセスモードと比較すると、stat --format '%f %a'
元のモードは41edですが、アクセスモードは755、元のモードは81a4ですが、アクセスモードは644です。
では、「生モード」とはどういう意味ですか?
答え1
「ヘックス生モード」の意味を解釈するには2つの部分があります。最初は16進数ただし、アクセスパターンは一般的に次のトピックで説明されています。8進数:
41ed 16 = 40775 8 81a4 16 = 100644 8
これを確認するには、/tmp
通常、制限削除フラグ(「固定ビット」)を設定します。
$ ls -ld /tmp drwxrwxrwt 17ルート4096 2012-05-31 13:45 /tmp $stat --format '%f %a' /tmp 1777年43号
そして変換:
43ff 16 = 41777 8
stat関数()のプログラママニュアルでは、「16進ネイティブモード」について説明し、man 2 stat
そのモードが8進値であると述べています。
st_mode フィールドには次のフラグが定義されます。 S_IFMT 0170000 ファイルタイプビットフィールドのビットマスク S_IFSOCK 0140000ソケット S_IFLNK 0120000シンボリックリンク S_IFREG 0100000 一般ファイル S_IFBLK 0060000ブロックデバイス S_IFDIR 0040000 ディレクトリ S_IFCHR 0020000 文字デバイス S_IFIFO 0010000先入選出 S_ISUID 0004000 UID ビット設定 S_ISGID 0002000はグループIDビットを設定します(下記参照)。 S_ISVTX 0001000固定ビット(下記参照) S_IRWXU 00700 ファイル所有者権限マスク S_IRUSR 00400 所有者に読み取り権限があります。 S_IWUSR 00200 所有者に書き込み権限があります S_IXUSR 00100 所有者に実行権限があります S_IRWXG 00070 グループ権限マスク S_IRGRP 00040 グループに読み取り権限があります。 S_IWGRP 00020 グループに書き込み権限があります。 S_IXGRP 00010 グループに実行権限があります。 S_IRWXO 00007他の人の権限マスク(グループに属していません) S_IROTH 00004 他のユーザーが読み取り権限を持っています。 S_IWOTH 00002 他のユーザーが書き込み権限を持っています。 S_IXOTH 00001 他のユーザーが実行権限を持っています。
(異常な点は、オンラインマニュアルページこの部分がありません。 )
これはビットフィールド、最後の4桁の数字がアクセスパターンと一致することがわかります。先頭の数字(16進数)はファイルの種類と一致するため、16進数パターン81a4は「ディレクトリ、パターン0644」に対応し、16進数パターン41edは「一般ファイル、モード」に対応します。 0775"。