Ưu điểm của việc đồng bộ hóa UID / GID trên các máy Linux là gì?


24

Trước khi tôi đi sâu vào cách thức đồng bộ hóa UID / GID trên các máy Linux khác nhau của mình, tôi muốn biết thực sự lợi ích là gì?

Tôi biết rằng điều này giữ cho việc đồng bộ hóa tệp tương đối dễ dàng (vì quyền sở hữu được "giữ lại" một cách tự nhiên). Tuy nhiên điều này cũng có thể đạt được nếu không tùy thuộc vào dịch vụ truyền dẫn.

Có điều gì khác sẽ được hưởng lợi từ các UID / GID nhất quán không?


4
Đừng quên, khi thay đổi uid / gid, để cập nhật tài liệu lưu trữ (tệp tar, v.v.) và cả các tệp conf có thể sử dụng id số thay vì uidname / tên nhóm.
Olivier Dulac

Câu trả lời:


31

nợ kỹ thuật

Vì những lý do dưới đây, việc giải quyết vấn đề này sớm sẽ đơn giản hơn nhiều để tránh tích lũy nợ kỹ thuật . Ngay cả khi bạn thấy mình đã ở trong tình huống này, có lẽ tốt hơn là giải quyết nó trong tương lai gần hơn là để nó tiếp tục xây dựng.

hệ thống tập tin nối mạng

Câu hỏi này dường như tập trung vào phạm vi hẹp của việc chuyển tệp giữa các máy với hệ thống tệp cục bộ, cho phép các trạng thái sở hữu cụ thể của máy.

Các cân nhắc về hệ thống tệp được nối mạng dễ dàng là trường hợp lớn nhất để cố gắng giữ đồng bộ hóa ánh xạ UID / GID của bạn, bởi vì bạn thường có thể ném "đạt được" mà bạn đã đề cập ra ngoài cửa sổ ngay khi chúng vào hình ảnh. Chắc chắn, bạn có thể không có các hệ thống tệp được chia sẻ giữa các máy chủ này ngay bây giờ ... nhưng còn tương lai thì sao? Bạn có thể thành thật nói rằng sẽ không bao giờ có trường hợp sử dụng cho một hệ thống tệp được nối mạng được giới thiệu giữa các máy chủ hiện tại của bạn hoặc máy chủ được tạo trong tương lai không? Nó không phải là rất suy nghĩ về phía trước để giả định khác.

Giả sử rằng đó /homelà một hệ thống tệp được nối mạng được chia sẻ giữa host1host2trong các ví dụ sau.

  • Quyền không đồng ý : /home/user1được sở hữu bởi một người dùng khác nhau trên mỗi hệ thống. Điều này ngăn người dùng có thể truy cập hoặc sửa đổi liên tục thư mục chính của họ trên các hệ thống.
  • cuộc chiến chown : Rất phổ biến khi người dùng gửi một vé yêu cầu quyền truy cập thư mục chính của họ được sửa trên một hệ thống cụ thể. Khắc phục sự cố này khi host2phá vỡ các quyền trên host1. Đôi khi có thể mất một vài trong số những vé này để được làm việc trước khi ai đó lùi lại và nhận ra rằng một cuộc giằng co đang diễn ra. Giải pháp duy nhất là sửa các ánh xạ ID không đồng ý. Điều đó dẫn đến ...
  • Địa ngục tái cân bằng UID / GID : Độ phức tạp của việc sửa ID sau này tăng theo cấp số nhân theo số lần sửa chữa liên quan để sửa một người dùng trên nhiều máy. ( user1có ID của user2, nhưng user2có ID của user17... và đó chỉ là hệ thống đầu tiên trong cụm) Bạn càng chờ đợi để khắc phục sự cố, các chuỗi này càng phức tạp, thường đòi hỏi thời gian ngừng hoạt động của các ứng dụng trên nhiều máy chủ để có được những thứ đúng trong đồng bộ.
  • Vấn đề bảo mật : user2on host2có cùng UID như user1trên host1, cho phép chúng viết /home/user1lên host2mà không cần biết user1. Những thay đổi này sau đó được đánh giá host1với sự cho phép của user1. Cái gì có thể đi sai? (nếu user1là người dùng ứng dụng, một người nào đó sẽ phát hiện ra nó có thể ghi và sẽ thực hiện thay đổi. Đây là sự thật đã được chứng minh về thời gian.)

Có những kịch bản khác, và đây chỉ là những ví dụ về những cái phổ biến nhất.

tên không phải luôn luôn là một lựa chọn

Bất kỳ tập lệnh hoặc tập tin cấu hình nào được viết bằng ID số đều trở nên không thể truy cập được trong môi trường của bạn. Nói chung không phải là vấn đề vì hầu hết mọi người không mã hóa những thứ này trừ khi họ hoàn toàn bắt buộc phải ... nhưng đôi khi công cụ bạn đang làm việc không cho bạn lựa chọn trong vấn đề này. Trong các trường hợp này, bạn buộc phải duy trì n phiên bản khác nhau của tập lệnh hoặc tệp cấu hình.

Ví dụ: pam_succeed_ifcho phép bạn sử dụng lĩnh vực user, uidgid... một "nhóm" tùy chọn là vắng mặt. Nếu bạn được đặt ở vị trí mà nhiều hệ thống được mong đợi sẽ thực hiện một số hình thức hạn chế truy cập dựa trên nhóm, bạn sẽ có n biến thể khác nhau của cấu hình PAM. (hoặc ít nhất là một GID duy nhất mà bạn phải tránh va chạm vào)

quản lý tập trung

Câu trả lời của natxo có điều này bao phủ khá tốt.


Tôi không chắc chắn việc nói rằng sử dụng hệ thống tệp được nối mạng sẽ ngăn chặn việc khắc phục các sự cố với các uids khác nhau, tôi biết ít nhất một hệ thống tệp hỗ trợ bản đồ uid cho phép bạn chỉ định nhóm và người dùng nào khớp với các máy khác nhau.
Vality

@Vality Là một giải pháp phổ biến, tôi vẫn ngần ngại gọi nó là một giải pháp có thể mở rộng.
Andrew B

Tôi đồng ý, tôi chỉ không muốn làm cho OP nghĩ rằng điều đó là không thể, tôi đồng ý phần lớn với đề xuất của bạn rằng giải pháp tốt nhất là giữ chúng đồng bộ.
Vality

cảm ơn! Thật không may "sớm" đã qua lâu. Mặc dù tôi biết rằng một số cấu hình ldap / kerberos là thứ tôi muốn đưa vào đây khi tôi làm việc, nhưng bây giờ thì không. Vì một số lý do khác, tôi đặc biệt quan tâm đến việc sử dụng UID / GID trên các hệ thống tương tác. Giống như tôi đã nói chuyển tập tin là một vấn đề (hiện đang có trạng thái "nó hoạt động"), đó là lý do tại sao tôi muốn biết liệu có những điều khác (như bạn đã đề cập) cũng bị ảnh hưởng bởi UID không. Bạn có thể thêm một số từ khóa của những "kịch bản khác" không? Điều đó sẽ làm cho điều này một câu trả lời tuyệt vời!
alex

@alex Vâng, tôi có nghĩa là "các kịch bản khác" về các vấn đề hệ thống tập tin được nối mạng. Cho dù bạn đến muộn trong trò chơi đến đâu, vấn đề chỉ tiếp tục trở nên tồi tệ hơn khi nó không được giải quyết. Nếu những lý do chúng tôi cung cấp không đầy đủ, có lẽ sẽ hữu ích nếu bạn điều khiển câu hỏi của mình nhiều hơn một chút bằng cách cung cấp những "lý do khác" đó. Các câu trả lời được cung cấp cho đến nay là những câu trả lời khá tốt trong quan điểm của tôi. Nếu bạn đang cố gắng thuyết phục quản lý, thì trách nhiệm không thuộc về chúng tôi để khiến họ làm điều đúng đắn.
Andrew B

18

một khi bạn đạt đến một kích thước nhất định (và nó luôn sớm hơn bạn nghĩ), bạn sẽ nhận ra rằng việc thay đổi mật khẩu hoặc vô hiệu hóa tài khoản cho ai đó trên tất cả các máy chủ là PITA. Đó là lý do tại sao mọi người sử dụng các hệ thống với cơ sở dữ liệu LDAP (hoặc NIS nhưng không làm điều đó, không an toàn hiện nay) như openldap hoặc ngày nay là freeipa tuyệt vời.

Bạn duy trì tất cả thông tin tài khoản / nhóm trong cơ sở dữ liệu trung tâm, tất cả các máy chủ lưu trữ chia sẻ thông tin đó. Tất nhiên, bạn có thể làm nhiều việc khác: sử dụng thông tin người dùng để cấp quyền cho tệp, nhưng cũng tạo người dùng ảo cho tất cả các ứng dụng có ràng buộc ldap thay vì phải tạo người dùng của bạn ở đó (rất nhiều ứng dụng web có thể sử dụng ldap cho cơ sở dữ liệu người dùng của họ), duy trì cơ sở dữ liệu quy tắc sudo trung tâm, phân phối môi trường tự động của bạn, giữ các vùng dns của bạn, ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.