File Sharing

File sharing 讓多個 users / processes 存取同一份 file / directory;OS 必須同時支援 collaboration 與 protection。

Metadata

Multi-user file system 需要在 file / directory attributes 中保存:owner、group、permissions、以及 request user identity。Kernel 做 file operation 前,會比對 process identity 與 metadata,決定適用 owner / group / others permissions,然後 allow 或 deny。

UNIX 權限細節可參考 D-SP-Ch5ab-Access_Permissions;real/effective UID 在 permission checking 中的角色可參考 D-SP-Ch5ac-RealEffectiveUID

Local vs remote sharing

Local mounted file systems 通常可直接依本機 UID/GID 做 permission check。Remote-mounted 或可移動 storage 會遇到 identity mapping:同一個 UID 在兩台 machines 可能代表不同人。這需要 D-OS-Ch15fb-Distributed_Information_System(DNS、NIS、LDAP、Active Directory 等)維持 user / group identity 一致。

Concurrent access

Access control 只回答「誰能開」。多個 users 同時讀寫時,還要定義 writes 何時對其他人可見、file pointer 是否共享、concurrent writes 如何交錯;這是 D-OS-Ch15g-Consistency_Semantics