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 đó /home
là một hệ thống tệp được nối mạng được chia sẻ giữa host1
và host2
trong 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
host2
phá 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. (
user1
có ID của user2
, nhưng user2
có 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 :
user2
on host2
có cùng UID như user1
trên host1
, cho phép chúng viết /home/user1
lên host2
mà không cần biết user1
. Những thay đổi này sau đó được đánh giá host1
với sự cho phép của user1
. Cái gì có thể đi sai? (nếu user1
là 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_if
cho phép bạn sử dụng lĩnh vực user
, uid
và gid
... 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.