CVS игнорирует бит setgid для каталогов
Я администрирую сервер CVS (CVS 1.11.23 на CentOS 6.9, с отключенным SELinux).
Я установил бит setgid во всех каталогах репозитория, как показано на этой странице, чтобы новые файлы и каталоги принадлежали 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
группа, которая приводит к ошибкам разрешения позже.
Это происходит как с клиентом CVS из командной строки, так и с клиентом Eclipse, используя методы соединения pserver и extssh.
Что может заставить его игнорировать бит setgid?
Я попытался добавить скрипт commitinfo, чтобы напечатать некоторую информацию о пользователе, выполняющем коммит. Это не показывает ничего необычного; Umask 0022, так что это не должно влиять на вещи.