2013-01-07 11 views
5

Tôi sử dụng một kho lưu trữ trống, nơi nhiều dev có thể đẩy.sharedRepository wrong group

Như đã đề xuất, tôi đã sử dụng sharedRepository = true để yêu cầu git cung cấp cho một nhóm người dùng quyền được cho phép.

Khi tôi muốn thêm vào đẩy, tôi chỉ cần thêm chúng nhóm được yêu cầu như nhóm thứ cấp (sudo adduser the_pusher the_required_group)

Khi devs đẩy, tôi thấy các tập tin được tạo ra trong objects thư mục được tạo ra với sự cho phép tốt nhưng không phải là nhóm tốt .

Ví dụ:

$ ls -l repository/objects 
... 
drwxrwsr-x 2 pusher1 pusher1 4096 janv. 7 14:13 fa 
drwxrwsr-x 2 pusher1 pusher1 4096 déc. 26 15:29 fc 
drwxrwsr-x 2 pusher1 pusher1 4096 déc. 11 12:41 fd 
... 

Như bạn có thể thấy, nhóm kèm theo là các nhóm chính của pusher1

Làm thế nào tôi có thể làm cho git để đính kèm các đối tượng này để the_required_group để thay thế?


Cập nhật

tôi sử dụng git qua ssh. Mỗi dev có tài khoản ssh của riêng mình.

+1

gì giao thức? git hay ssh? – CharlesB

+0

Câu hỏi được cập nhật –

Trả lời

3

đội của tôi đã cố định này bằng cách thiết lập các tùy chọn s trên tất cả các thư mục trong kho với chmod Để làm điều này chownchgrp các tập tin và thư mục để người dùng/nhóm đúng thì chmod g+s tất cả mọi thứ trong kho.

+s làm cho tệp mới có nhóm thư mục chính. Lấy từ man 2 chown

  • Nếu hệ thống tập tin được gắn với -o nogrpid và bit set-nhóm-ID được kích hoạt trên thư mục cha, sau đó nhóm của một tập tin mới được thực hiện tương tự như của thư mục mẹ.

Xem thêm, man chmodman 2 chmod

+0

Đó là một giải pháp tuyệt vời. Tôi sẽ thử. Chúng ta không thể đặt nó chỉ trên 'đối tượng'? –

+0

Tôi không chắc chắn. Tôi nghĩ bạn ít nhất cũng cần phải làm 'refs' và có lẽ' thông tin'. 'đóng gói-refs' là một tập tin trong thư mục gốc của' $ GIT_DIR' mà tôi nghĩ rằng có thể được sửa đổi định kỳ bằng cách đẩy nhưng tôi không chắc chắn. Nếu nó là điều này sẽ yêu cầu '$ GIT_DIR' để có tùy chọn thiết lập. – asm