私が知る限り、権限ビットは12個で、そのうちのユーザー、グループ、および他のユーザーはそれぞれ3つのグループを持ち、各グループは3ビットを持ち、これはRWXです。 RWは読み書き用ですが、Xの場合はsearch
ディレクトリとexecute
ファイルです。
私が理解していないものは次のとおりです。
残りの3つのモードビットは何ですか?すべてinodeに保存されていますか?
UNIXのすべてがファイルであるため、ファイルディレクトリ自体もファイルと見なされます(本当ですか?)UNIXシステムはACLを使用してファイルシステムを表すため、ファイルシステムはfilename-inode_numberリストのペアです。ファイルディレクトリは自分のinode番号とファイル名をどこに保存しますか?
ベストアンサー1
stat /bin/su
あるシステムでは、次のように表示されます。
Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
4755
すべての12モードビットの8進数表現です。数字はビットに対応します。
octal 4 7 5 5
bits 100 111 101 101
sst uuu ggg ooo
ug rwx rwx rwx
uuu
その中には、ユーザー、グループ、および他のユーザーの権限ビットがありますggg
。ooo
残りのグループ(シーケンスの最初のグループ)には、setuid(su
)、setgid(sg
)、およびSticky(t
)ビットが含まれます。
setuid と固定ビットはほとんどのファイルではゼロなので、一般的に言及されていません。他のファイルと一緒に保存された各ファイルにはまだ存在します。
真剣に考えると、一部のファイルシステムとインタフェースはファイルを保存します。タイプモードビットに沿って、より高いビットで。上では12ビットだけを占めるので、16ビットフィールドには4ビットが残る。例えばst_mode
で説明されています。stat(2)
。