1

stat()や などのさまざまな関数で使用される許可ビットを調べていて、chmod()実際に定義されているマクロの説明が必要でした。たとえば、 (GNU/Linux)S_IRUSRで表されると言われています。00400私の質問は、誰かが00400実際に何であるかを説明できますか? 数字ですか、何ですか?マクロを OR する方法は理解していますが、マクロが実際に何であるかはわかりません。

4

2 に答える 2

3

許可を得て左端の 3 つの数字を説明します。これは S_IRUSR についても説明します。

したがって、それぞれの数値は 8 進数です。各数値は 0 ~ 7 です。各 8 進数は 3 ビットの 2 進数に変換できます。各ビットは許可を表します。

Left most bit = Read permission
Middle bit    = Write permission
Right most bit= Execute permission

0 から 7 をバイナリに書き込み、パーミッション ビットを確認します。

Octal    Binary 
0        0 0 0 (No Read,  No Write,  No Execute) -- No permission
1        0 0 1 (No Read,  No Write,  Yes you can execute)
2        0 1 0 (No Read,  Can Write, No execute)
3        0 1 1 (No Read,  Can Write, Can execute)
4        1 0 0 (Can Read, No Write,  No Execute)
5        1 0 1 (Can Read, No Write,  Can execute)
6        1 1 0 (Can Read, Can Write, No execute)
7        1 1 1 (Can Read, Can Write, Can execute)

したがって、各数字は権限を表します。次の部分は、これらの許可が誰であるかについてです。一番左の 3 つの数字を XYZ とします。

X means permission given to the owner of the file.
Y means permission given to the group of the owner.
Z means permission given to all other users in system , outside of user's group.

Z_ISUSR = 00400 とすると、4 はユーザーが読み取り可能であることを意味します IRUSR = ユーザーが読み取り可能です。

これら 3 つはパーミッションの重要な数字であり、これらはファイルに与えられたパーミッションのみを指定します。

于 2012-11-24T02:09:24.990 に答える
0

ウィキにはここに非常に良い説明があります

リンクされたページから:

0 --- no permission
1 --x execute
2 -w- write
3 -wx write and execute
4 r-- read
5 r-x read and execute
6 rw- read and write
7 rwx read, write, and execute
于 2012-11-23T21:00:30.543 に答える