15.04 其他文件系统函数

umask

用来限制当前进程(和它将来的子进程)创建文件的访问权限。大多数 shell 的初始化文件会将 umask 默认置为八进制值 022 (—-w–w-),也就是说即便给了组和其他的写权限,实际创建出来的文件也是没有这两项权限的。

access

检查实际用户 / 组是否有文件的访问权限,但是不做实际访问。也能仅仅检查文件是否存在。

变种 faccessat 有更多功能,比如有选项支持对有效用户 / 组进行权限检查。

但是,因为检查文件和实际访问文件之间有滞后性(不是原子的),所以尽量避免“先使用 access 检查文件再访问”。

chmod

当非特权级(不具备 CAP_FSETID 能力的)进程调用 chmod 时,若文件的组 ID 不等于进程的有效组 ID 或是任一辅助组 ID,内核则总是清除文件的 set-group-ID 权限,这也是出于安全考虑。书中的例子:

chown

略。