15.04 其他文件系统函数
umask
用来限制当前进程(和它将来的子进程)创建文件的访问权限。大多数 shell 的初始化文件会将 umask 默认置为八进制值 022 (—-w–w-),也就是说即便给了组和其他的写权限,实际创建出来的文件也是没有这两项权限的。
access
检查实际用户 / 组是否有文件的访问权限,但是不做实际访问。也能仅仅检查文件是否存在。
变种 faccessat
有更多功能,比如有选项支持对有效用户 / 组进行权限检查。
但是,因为检查文件和实际访问文件之间有滞后性(不是原子的),所以尽量避免“先使用 access
检查文件再访问”。
chmod
当非特权级(不具备 CAP_FSETID
能力的)进程调用 chmod
时,若文件的组 ID 不等于进程的有效组 ID 或是任一辅助组 ID,内核则总是清除文件的 set-group-ID 权限,这也是出于安全考虑。书中的例子:
chown
略。