4.6 新文件和目录的所有权

来源:互联网 发布:高温蒸甲醛 知乎 编辑:程序博客网 时间:2024/05/19 12:18

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位才能自动工作(