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