当前位置:嗨网首页>书籍在线阅读

04-新建文件的所有者

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

2.1.2 新建文件的所有者

确定新建文件的所有者很简单:文件所有者的uid即创建该文件的进程的有效uid。

确定新建文件的用户组则相对复杂些。默认情况下,使用创建进程的有效gid。System V是通过这种方式确定,Linux的很多行为都是以System V为模型,因此标准Linux也采用这种处理方式。

但是问题在于,BSD定义了自己的行为方式:新建文件的用户组会被设置成其父目录的gid。在Linux上可以通过挂载选项[2]实现这一点——在Linux上,如果文件的父目录设置了组ID(setgid)位,默认也是这种行为。虽然大多数Linux系统会采用System V行为(新建的文件使用创建进程的gid),但BSD行为(新建文件接收父目录的gid)也有存在的可能,这意味着对于那些对新建文件的所属组非常关注的代码,需要通过系统调用fchown()手动设置所属组(参见第8章)。

幸运的是,大部分时候不需要关心文件的所属组。