Tôi đã thiết lập Git và Gitolite, và tại một số thời điểm tôi nhớ lại đã thấy cài đặt "umask", trong một trong các tệp cấu hình. Điều này có đặt quyền cho tất cả các tệp tôi đồng bộ hóa bằng Git không? Đó là chính xác những gì tôi cần. Tôi có thể tìm thấy nó ở đâu?Đặt umask trong Git/Gitolite
Trả lời
umask settings in Gitolite có để thay đổi umask cho repos mới được tạo (và không phải về các tệp được quản lý trong các phiên bản của các repos đó).
Xem gitolite.rc doc:
$REPO_UMASK
, bát phân, mặc định 0077Giá trị mặc định
UMASK
rằng gitolite sử dụng làm cho tất cả các hợp đồng mua lại và các nội dung của họ córwx------
quyền. Những người muốn chạy gitweb nhận ra rằng điều này sẽ không làm.Cách chính xác để giải quyết vấn đề này là cung cấp cho biến này một giá trị như
0027
(lưu ý cú pháp: số 0 đứng đầu), và sau đó làm cho người dùng chạy máy chủ web (apache,www-data
, bất cứ điều gì) nhóm 'git'.Nếu bạn đã cài đặt gitolite thì các tệp hiện có sẽ phải được cố định theo cách thủ công (cho một umask hoặc
0027
, có thể làchmod -R g+rX
). Điều này là doumask
chỉ ảnh hưởng đến quyền đối với các tệp mới được tạo, không ảnh hưởng đến các quyền hiện có.
Cài đặt này cũng tương tự như một trong những sử dụng khi bạn tạo trực tiếp một repo git (không gitolite):
core.sharedRepository
Khi
group
(hoặctrue
), kho được thực hiện có thể chia sẻ giữa nhiều người dùng trong một nhóm (đảm bảo tất cả các tệp và đối tượng có thể ghi nhóm).
Khiall
(hoặcworld
hoặceverybody
), tất cả người dùng có thể đọc được, bổ sung làgroup-shareable
.
Khiumask
(hoặcfalse
), git sẽ sử dụng quyền được báo cáo bởiumask
.
Xem thêm "How do I share a Git repository with multiple users on a machine?" để biết thêm.
Khi bạn có xung đột giữa các nền tảng liên quan đến quyền, bạn cũng có tùy chọn "instruct git to ignore file permissions changes" (git config core.fileMode false
).
Cập nhật: Câu trả lời này bao gồm gitolite 2. Với gitolite 3, cài đặt thay đổi từ $REPO_UMASK
thành chỉ $UMASK
.
- 1. Cài đặt nginx/php-fpm umask
- 2. Cách đặt umask rộng của hệ thống?
- 3. Đặt umask của quy trình jenkins
- 4. Làm cách nào để đặt umask từ bên trong java?
- 5. Tôi có thể đặt umask cho tempfile.NamedTemporaryFile bằng python không?
- 6. php umask (0) mục đích
- 7. Tại sao bạn sử dụng umask?
- 8. Sự khác biệt Umask giữa 0022 và 022
- 9. linux: nhận được umask của một quá trình đã chạy?
- 10. 'git clone' tôn trọng umask, ngoại trừ thư mục dự án cấp cao nhất
- 11. Tại sao đối số của os.umask() đảo ngược? (umask 0o000 làm chmod 0o777)
- 12. PHP mkdir() và fopen() không hoạt động - vấn đề quyền? umask vấn đề?
- 13. Đặt quyền mặc định cho các tệp và thư mục con mới được tạo trong thư mục trong Linux?
- 14. Đặt MimeType trong C#
- 15. Đặt trong Ruby?
- 16. Đặt JDK trong Eclipse
- 17. Đặt DJANGO_SETTINGS_MODULE trong virtualenv?
- 18. Đặt màu trong plot.xts
- 19. Đặt phút trong DateTime?
- 20. Đặt biến trong jinja
- 21. Đặt JTable trong JTree
- 22. Đặt trang trong jqgrid
- 23. Đặt location.hash trong khung
- 24. Đặt TempData trong ActionFilterAttribute
- 25. nút đặt trong xpath
- 26. Đặt mat4 trong OpenGL
- 27. Cách đặt giá trị Đặt tùy chọn trong CRM 2011?
- 28. Cài đặt và đặt lại DATEFORMAT trong SQLServer 2005
- 29. Chạy trình cài đặt khác trong cài đặt Inno Setup
- 30. Cách đặt Cài đặt Máy in trong khi in PDF