Как установить полномочия, таким образом, два пользователя могут работать над тем же hg репозиторием?

Ubuntu: Jaunty  
Mercurial: 1.3.1  
Access: ssh  (users john and bob)  
File permission:   -rw-rw----  1 john john  129276 May 17 13:28 dirstate  
User: bob  
Command: 'hg st'  
Response:  

**abort: Permission denied: /our/respository/.hg/dirstate**

Очевидно подвижный не может позволить бобу видеть состояние, потому что файл, который это должно считать, принадлежит мне.

Таким образом, я изменяю полномочия позволить бобу читать файл, и все прекрасно, вплоть до я затем пытаюсь сделать что-то, откуда ситуации инвертируются. Теперь он владеет файлом, и я не могу считать его.

Таким образом, я создал группу "разработчиков", и и Джон и боб принадлежат группе, но все еще подвижным скрипкам с владением и полномочиями каждый раз, когда один или другие фиксации.

Кроме того каждый раз, когда один или другие из нас добавляет файл к репозиторию, файл принадлежит исключительно разработчиком. Это меня устраивает, так как я достаточно знаком с chmod, но он представляет основную проблему качнуться, когда я забыл давать ему разрешение. Я предполагаю, что нам просто нужен рычаг постфиксации для этого; но только включать этот признак...

Как мы настраиваем его так, два различных логина в той же группе могут согласиться на тот же репозиторий по ssh?

7
задан John Mee 17 May 2010 в 05:05
поделиться

2 ответа

с использованием групп unix: см. Метод файловой системы здесь .

3
ответ дан 6 December 2019 в 10:48
поделиться

Вам необходимо установить «липкий бит группы» для всех соответствующих каталогов. Этот бит разрешений говорит, что любой файл или каталог, созданный в этих каталогах, должен иметь групповое владение группой родительского каталога, а не первичной группой создавшего пользователя.

Вы можете все исправить, перейдя на верхний уровень всего репозитория ( hg root ) и выполнив следующие команды:

chgrp -R committers .
chmod -R ug+=rwX .
find . -type d -print0 | xargs -0 chmod 2775   # or 2770 if other can't read

Эта первая команда возвращает групповое владение коммиттерам для всех файлов и каталогов. Вторая команда гарантирует, что владельцы и члены группы могут читать и записывать все файлы и каталоги и что они могут спускаться по всем каталогам. Третья команда перечисляет только каталоги (без файлов), а затем устанавливает для них бит группы стикеров. После того, как вы закончите, разрешения для каталогов будут выглядеть так: rwxrwsr-x

Вам нужно сделать это только один раз, и если вы сделаете это до создания репо, вам вообще не нужно использовать find, поскольку бит липкой группы будет унаследован всеми каталогами. Раньше это делалось таким же образом для CVS и svn.

14
ответ дан 6 December 2019 в 10:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: