在具有gid set的目录中创建的文件不属于父目录组

时间:2016-04-07 15:05:05

标签: c++ linux boost permissions

我有一个目录" some_path / my_data"我希望目录中创建的所有文件都属于group" test_group"和组已经读取并执行了子目录的位设置和文件的读取位

我这样做了。以root身份执行

chown -R myuser:test_group some_path/my_data
chmod -R 2750 some_path/my_data

接下来,我有一个进程(uid:proc,gid:proc),它将为这个some_path / my_data目录创建文件和目录,这个进程有一个umask 077(rxw ------)

进程使用boost来编写文件和目录,这就是 我用

if (is_directory())
{
   permissions(p_copy_to,add_perms|group_exe|set_gid_on_exe);
}
permissions(p_copy_to,add_perms|group_read);

因此,所写文件的权限是

some_path/my_data:
-rw-r----- 1 proc test_group 1298 Apr  7 17:40 file1
-rw-r----- 1 proc test_group 1704 Apr  7 17:40 file2
drwxr-x--- 2 proc test_group 4096 Apr  7 17:40 dir1

somepath/my_data/dir1:
-rw-r----- 1 proc proc 1220 Apr  7 17:40 file1
-rw-r----- 1 proc proc 1220 Apr  7 17:40 file2
-rw-r----- 1 proc proc 1220 Apr  7 17:40 file3

当我跳过设置" set_gid_on_exe"从提升结果 目录是

somepath/my_data/:
drwxr----- 2 proc test_group 4096 Apr  7 17:40 dir1

somepath/my_data/dir1:
    -rw-r----- 1 proc test_group 1220 Apr  7 17:40 file1
    -rw-r----- 1 proc test_group 1220 Apr  7 17:40 file2
    -rw-r----- 1 proc test_group 1220 Apr  7 17:40 file3
  1. 我怎样才能得到'在dir1上正确设置了位?
  2. 我应该使用流程中的chown吗?在boost中是否有任何函数可以使用或者我应该使用:: chown

0 个答案:

没有答案