Làm cách nào tôi có thể thực hiện ánh xạ UID NFSv4 trên các hệ thống có sự không phù hợp với UID?


11

Tôi đang làm việc trong phòng thí nghiệm với ba hệ thống Ubuntu và tôi muốn gắn kết một số hệ thống tập tin thông qua NFS. Tuy nhiên, trong khi các hệ thống có một số tên người dùng giống nhau, thì UID và GID không khớp nhau, vì ba hệ thống được thiết lập riêng biệt. Khi tôi gắn hệ thống tệp NFS từ hệ thống này sang hệ thống khác, quyền sở hữu hiển thị sai. Ví dụ: nếu UID 1000 là alice trên server1 và cùng UID, 1000, là bob trên server2, thì khi server1 gắn hệ thống tệp đã xuất của server2, các tệp của bob dường như được sở hữu bởi alice.

Vậy có cách nào để khiến NFS (v4) chuyển đổi UID giữa các máy chủ thông qua tên người dùng được liên kết của họ không? Googling cho điều này, tôi đã thấy rất nhiều tài liệu tham khảo về Kerberos, LDAP hoặc NIS, có vẻ như quá mức cần thiết cho một nhiệm vụ đơn giản như vậy, và có thể không thể thực hiện được vì các hệ thống này không được quản lý tập trung. Liên kết này dường như chỉ ra rằng những gì tôi yêu cầu là không thể. Nó có đúng không?

Chỉnh sửa: Tôi đã thử mọi cấu hình /etc/idmapd.confmà tôi có thể nghĩ hoặc tìm thấy trên internet và trong khi quá trình idmapd đang chạy rõ ràng, cho đến nay tôi không thấy bất kỳ bằng chứng nào cho thấy NFS đang cố gắng sử dụng nó cả, và nó chưa bao giờ có bất kỳ ảnh hưởng nào đến ID người dùng được báo cáo trên các mount NFS.


1
Tôi tin rằng điều dễ nhất cho bạn là mang tất cả đồ đạc của bạn theo thứ tự. Bạn có thể ở lại với chương trình xác thực hiện tại của mình vì bạn chỉ có ba hộp, nhưng bạn cần đồng bộ hóa tất cả người dùng UID / GID trên các hộp của mình. Đây thực sự không phải là một nhiệm vụ khó khăn.
Serge

Vâng, đó là những gì tôi cuối cùng đã làm.
Ryan C. Thompson

Câu trả lời:


5

Không có quản trị người dùng tập trung, cách "tốt nhất" tôi thấy là bạn buộc tất cả các máy chủ sử dụng cùng một GID và UID cho mỗi người dùng. Bây giờ ... tôi chỉ nói về các tập tin và / hoặc thư mục.

Những gì tôi sẽ làm trong trường hợp này là:

  • Đăng ký từng UID và GID hiện đang sử dụng.
  • Chỉnh sửa /etc/passwd/etc/groupkhớp các nhóm trên tất cả các máy chủ. Tốt nhất là với UID và GID mới để bước tiếp theo sẽ nhanh hơn
  • Chạy cái này (sẽ mất một chút thời gian):

    find / -group <OLD_GID> -exec chgrp <NEW_GID> '{}' \+
    find / -user  <OLD_UID> -exec chown <NEW_UID> '{}' \+
    

Ummm, câu lệnh "find" đang bắt đầu từ thư mục gốc. Lệnh đang thay đổi quyền sở hữu của mọi thư mục trên hệ thống. Các thay đổi được đề xuất cho các lệnh này sẽ bao gồm mọi tệp trên hệ thống. Tôi đề nghị bạn giới hạn thư mục nào lệnh này chạy ngược lại hoặc bạn sẽ có một ngày rất tồi tệ.

2
Từ find man: -group gname Đúng nếu tệp thuộc về gname nhóm. Nếu gname là số và không xuất hiện trong cơ sở dữ liệu nhóm (4), thì nó được lấy làm ID nhóm.
BitsOfNix

1

NFSv4 hỗ trợ ánh xạ id. Khi được bật, NFS sẽ truyền tên người dùng thay vì id số. Các máy chủ có uid số khác nhau cho cùng một người dùng không phải là vấn đề, vì tên người dùng được ánh xạ tới uids trên máy chủ.

Ánh xạ id luôn được sử dụng với các chế độ bảo mật Kerberos ( sec=krb5).

Ánh xạ id cũng có thể được sử dụng trong sec=syschế độ AUTH_UNIX (mặc định ). Tôi đã giải thích chi tiết cấu hình trong câu trả lời cho: Làm thế nào để idmap NFSv4 hoạt động với sec = sys .

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.