4.6 新文件和目录的所有权
当我们在第三章中描述一个新文件的建立时,使用open或者creat,我们没有说新文件的用户ID和组ID分配何值。当我们描述mkdir函
数时,我们将看到怎样创建一个新的目录。一个新目录的所有权规则和在这节中的一个新文件的规则一样。
一个新文件的用户ID被设置一个有效的进程用户ID。POSIX.1允许执行下面选项中的一个来决定新文件的组ID.
1.一个新文件的组ID可以是进程有效地的组ID。
2.一个新文件的组ID可以是该文件目录的组ID。
FreeBSD 5.2.1 和 Mac OS X 10.3 使用目录的组ID作为新文件的组ID.
linux ext2 和ext3 文件系统允许在POSIX.1的两个选项中选择一个作为文件系统的基础,对于命令mount(1)使用一个特殊的标志。
在linux2.4.22(with the proper mount option) 和 Solaris 9,一个新文件的组ID依赖于被创建文件的目录是否set-group-ID位被
设置,如果这个位被设置,新文件的组ID被设置为目录的组ID;否则新文件的组ID被设置为进程的有效组ID。
使用第二个选项继承目录的组ID,保证在某个目录下创建的所有文件和目录都具有该目录的组ID。这个组的文件和目录的所有权将从
这个点往下传,(this is used==这个已经被使用),例如,在linux上的/var/spool/mail目录。
前面我们已经提到,这个组所有选项是FreeBSD 5.2.1 和 Mac OS X 10.3的默认选项,但是在linux2.4.22和solaris 9,我们必须启
用set-group-ID 位并且mkdir函数必须继承目录的set-group-ID位才能自动工作(