CVS 忽略目录上的 setgid 位

CVS 忽略目录上的 setgid 位

我管理一个 CVS 服务器(CentOS 6.9 上的 CVS 1.11.23,禁用 SELinux)。

我设置了设置gid位在所有存储库目录中,这一页建议,这样新的文件和目录就归该cvs组所有,无论是谁提交的:

$ ls -al
drwxrwsr-x+ 407 root       cvs    20480 Jun 19 05:34 .
drwxr-xr-x.   5 cvs        cvs     4096 Nov 11  2014 ..
drwxrwsr-x+   3 cvs        cvs     4096 Aug 18 16:07 CVSROOT
drwxrwsr-x+  20 cvs        cvs     4096 Aug 18 16:00 test

但是最近开始,当有人提交时,新的目录就会被创建而没有 setgid 位(请注意最后一行中的“x”而不是“s”):

$ ls -al test
drwxrwsr-x+  20 cvs    cvs   4096 Aug 18 16:00 .
drwxrwsr-x+ 407 root   cvs  20480 Jun 19 05:34 ..
drwxrwxr-x+   2 jw     cvs   4096 Aug 18 15:51 foo

结果,这些目录内添加的文件不属于该cvs组,这会导致以后出现权限错误。

这发生在使用 pserver 和 extssh 连接方法的命令行 CVS 客户端和 Eclipse 客户端上。

什么原因导致它忽略 setgid 位?

我尝试添加一个 commitinfo 脚本来打印有关执行提交的用户的一些信息。它显示没有什么异常;umask 是 0022,所以这不会影响任何事情。

相关内容