2012-10-20 38 views
9

Bạn cần ngăn không cho root cập nhật thư mục git (working). Lý do bao gồm nhưng không giới hạn: ngăn chặn thay đổi quyền sở hữu hệ thống tệp không mong muốn.Làm thế nào để ngăn chặn root chạy git pull?

Không có móc git nào có vẻ như ngăn chặn tìm nạp/hợp nhất/kéo trước khi xảy ra, tương tự như móc trước cam kết. Hoặc ít nhất, không có gì tôi thấy ở đây (hoặc trong trang người đàn ông): http://www.analysisandsolutions.com/code/git-hooks-summary-cheat-sheet.htm

Suy nghĩ?

+4

* “ngăn chặn gốc […]” * - Tôi không nghĩ điều đó là có thể. – poke

+0

Tại sao? Vấn đề thực tế bạn đang cố gắng tránh là gì? Nếu bạn đang cố gắng để ngăn chặn các tập tin trong kho lưu trữ của bạn được sở hữu bởi root, không kéo trong khi bạn đang đăng nhập như là người chủ. – meagar

+1

@meagar Đã làm việc này. Than ôi, trong môi trường nhóm, nơi nhiều người có quyền truy cập root/sudo. Bạn muốn đặc biệt ngăn cản mọi người đăng nhập bằng root và vô tình thay đổi những thứ họ không nên. Đôi khi mọi người quên thói quen cũ (chúng tôi thường yêu cầu root/sudo privs để cập nhật, nhưng không còn), đăng nhập như root, và làm những thứ họ không nên. –

Trả lời

4

Cách duy nhất tôi thấy điều này không được giải quyết nhưng ít nhất "giảm nhẹ" đã được thông qua một wrapper cho lệnh git:

Tất cả các lệnh git đi qua wrapper này mà tiến hành nếu id dùng không phải là root.

8

Thay đổi /root/.bashrc để thêm thư mục mới vào đầu số PATH. Thêm một kịch bản lệnh shell có tên là git để kiểm tra $1 là một trong số ít lệnh chỉ đọc (hiển thị/trạng thái/nhật ký/danh sách rev ...) và gọi /usr/bin/git "[email protected]" nếu lệnh có thể chấp nhận được. Điều này sẽ ngăn không cho bất kỳ ai trong nhóm của bạn vô tình chạy git pull làm thư mục gốc. Nếu bạn lo lắng về việc họ cố tình làm điều đó, bạn có vấn đề lớn hơn ...

+5

Tốt hơn, có lệnh chỉ in một thông báo lỗi như 'Xin đừng chạy git as root'. –

+2

Trong trường hợp của tôi, đó là người quản lý của bộ phận của tôi, những người tiếp tục làm 'sudo su' bất cứ khi nào anh ta không được phép làm điều gì đó. Sau đó, anh ta làm một git kéo và vít lên các tập tin của tôi. Tôi chỉ muốn một thông báo lỗi cho bất kỳ lệnh git mà nói "Không bao giờ chạy lệnh git như root! Dừng rối lên quyền truy cập tập tin của tôi!" – Mnebuerquo

Các vấn đề liên quan