svnadmin создает игнорирующий бит липкой группы в каталоге - PullRequest
1 голос
/ 14 ноября 2009

Я использую Subversion с Apache и хочу, чтобы обычный пользователь (т.е. не root) мог создавать новые репозитории. Я подумал, что это будет достаточно легко сделать, используя родительский каталог с группой www-data и установленным битом группы. К сожалению, "svnadmin create ..." оставляет только каталог db с не установленной липкой группой. Как я могу обойти это? Это вызывает ошибки «Отказано в доступе» при попытке выполнить коммит через Apache.

У меня есть это для работы с политикой "только root может создавать репозитории", так как root может просто сжать файлы, когда закончите. Но это не то, что я хочу.

Вот след моего теста:

ctndocs@beta:~$ ll -d svn
drwsrwsr-x 6 ctndocs www-data 4096 2009-11-14 18:27 svn
ctndocs@beta:~$ cd svn
ctndocs@beta:~/svn$ umask
0002
ctndocs@beta:~/svn$ mkdir test
ctndocs@beta:~/svn$ svnadmin create test
ctndocs@beta:~/svn$ ls -l test
total 24
drwxrwsr-x 2 ctndocs www-data 4096 2009-11-14 18:31 conf
drwxrwxr-x 6 ctndocs www-data 4096 2009-11-14 18:31 db
-r--r--r-- 1 ctndocs www-data    2 2009-11-14 18:31 format
drwxrwsr-x 2 ctndocs www-data 4096 2009-11-14 18:31 hooks
drwxrwsr-x 2 ctndocs www-data 4096 2009-11-14 18:31 locks
-rw-rw-r-- 1 ctndocs www-data  229 2009-11-14 18:31 README.txt

Обратите внимание на отсутствие символа "s" в каталоге db. Все остальные в порядке.

1 Ответ

3 голосов
/ 14 ноября 2009

Если вы можете получить права доступа root и ваша файловая система поддерживает списки управления доступом к файлам (что справедливо для любого современного fs), вы можете включить FACL в файловой системе и затем установить разрешения группы по умолчанию для www-data:

mount /fs/root -o remount,acl
setfacl -Rdm g:www-data:rwx /fs/root/path/to/svndir
setfacl -Rm g:www-data:rwx /fs/root/path/to/svndir

После этого все, что создано в svndir, будет по умолчанию записано в группу для записи www-data, что можно проверить с помощью getfacl.

Не забудьте добавить опцию acl к /etc/fstab для файловой системы, чтобы включить FACL и после следующей загрузки.

...