添加写入权限并保持gid

时间:2013-08-16 17:28:27

标签: chmod

以下是设置:

  • 我的用户名为gitumask022
  • git将文件和文件夹添加到名为htdocs
  • 的文件夹中
  • htdocs拥有drwxr-srx权限(gid设置)并归git:apache所有
  • htdocs中已创建的文件和文件夹包含-rw-r--r--(644)和drwxr-srx(2775)

有时我需要授予Apache对文件夹的写权限:

chmod g+w some-folder

问题在于它失去了gid,所以而不是:

drwxrwsr-x

我明白了:

drwxrwxr-x

当我尝试添加gid时:

chmod g+s some-folder

它没有做任何事情。 some-folder仍然只有755个权限。

我也尝试手动将其设置为2755:

chmod 2755 some-folder

没有运气。

有没有人对如何保持gid设置有任何想法?

更新

经过几个小时的研究并发现其他用户遇到同样的问题后,@twalberg确定了仅有的两个可用选项。我决定创建一个新组,并在其中放置git和apache。现在git属于那个组,gid仍然存在。

1 个答案:

答案 0 :(得分:1)

man 2 chmod有这样的说法:

    If the calling process is not privileged  (Linux:  does  not  have  the
    CAP_FSETID  capability),  and  the group of the file does not match the
    effective group ID of the process or one  of  its  supplementary  group
    IDs,  the  S_ISGID  bit  will be turned off, but this will not cause an
    error to be returned.

我猜测git组中不存在apache,因此当git更改目录上的模式时,会自动清除setgid位。您可以将git添加到apache组,也可以使用特权帐户执行chmod