每个文件都有9个权限位:用户的读取执行权限,组的读写执行权限,其他的读写执行权限,分别对应9位。三位一组,8进制数。
目录: 当要访问一个目录下的文件时,需要有该目录的可执行权限。目录的可执行权限位也成为搜索位。
对目录的读权限意味着在读取该目录下所有文件的列表。
对目录的写权限是可以在该目录下创建新的文件或者文件夹。
如果要创建/usr/include/abc.h 这个文件,那么需要拥有/、usr 、include这三个目录的可执行权限,以及对abc.h的写权限。
一个新文件的用户ID是进程的有效用户ID。
POSIX允许组ID可以是:进程的有效组ID或者所在目录的组ID。
umask:为进程设置文件模式创建屏蔽字。该函数指定了要屏蔽的位,也就是说在该函数之后创建的权限位中如果有umask设置的位,是无效的。
shell默认创建文件时的权限位为666,文件夹为777,而默认的umask为022.也就是说屏蔽了其他人的写权限。 当然这个和shell的实现有关系。