Điều gì xảy ra với xác thực người dùng LDAP và chia sẻ thư mục chính NFS khi rời khỏi mạng?


9

Hiện tại tôi có một số máy trên mạng gia đình là hỗn hợp của máy tính để bàn và máy tính xách tay tĩnh. Nó không thể quản lý được đối với tôi và không thực tế đối với tất cả chúng có các thư mục nhà riêng, cài đặt và bảo mật, vì vậy tôi đang xem xét sử dụng LDAP cho quản lý người dùng chung và NFS cho các thư mục nhà chung.

Điều gì xảy ra khi một trong những máy tính xách tay ra đường? Mạng gia đình không thể truy cập được vì vậy auth sẽ thất bại và quay trở lại lưu trữ cục bộ? Ngoài ra, khi máy tính xách tay trở về có cách nào để đồng bộ lại bộ nhớ trong nhà với máy chủ NFS không?

Câu trả lời:


6

Cả NFS và LDAP đều không hỗ trợ hoạt động ngắt kết nối: tức là khi máy tính xách tay không thể truy cập vào máy chủ, nó sẽ không thể truy cập bất kỳ thư mục nào được gắn trên NFS, cũng như không thể thực hiện tra cứu người dùng. Về cơ bản, nó sẽ bị mắc kẹt.

Một vài cách giải quyết có thể là như sau.

Thay vì -sự lắp bạ nhà qua NFS, bạn có thể giữ các thư mục địa phương việc sử dụng unison để đồng bộ hóa chúng với một trên máy chủ trung tâm. Bạn có thể chạy unison từ cron, được bảo vệ bởi một bài kiểm tra hủy bỏ hoạt động nếu máy chủ không thể truy cập được. Bài đăng này trên AskUbfoxbài này cung cấp một cuộc thảo luận về chủ đề đồng bộ hóa và một số đề xuất hữu ích.

Liên quan đến vấn đề xác thực / ủy quyền người dùng, các giải pháp xoay quanh việc sử dụng libnss-dblàm nguồn cho thông tin người dùng:

  • Cài đặt libnss-db, sau đó định cấu hình /etc/nsswitch.confđể tra cứu dbnguồn ngoài thông thường files:

    passwd: tập tin db nhóm: tập tin db bóng: tập tin db

    Các dbtập tin nguồn được đặt trong /var/lib/misc ( /var/lib/misc/passwd.dbvv). Sau đó, bạn có thể giữ một bản sao chính của các tệp này trên máy chủ trung tâm của mình và đồng bộ hóa máy khách với rsync+ cron. Nhược điểm: không có tập lệnh quản lý được tạo sẵn để quản lý các tệp db trên máy chủ (mà tôi biết), ngoài ra bạn phải chịu sự chậm trễ đồng bộ hóa và phải thiết lập một cách rsyncđể kết nối với máy chủ chính.

  • Các gói nss-updatedblibpam-ccredscung cấp một cách sạch hơn để thiết lập điều này: với nss-updatedbbạn có thể tạo lại cục bộ passwd.dbgroup.db, trong khi shadowthông tin được quản lý bởi libpam-ccreds. Hướng dẫn cách thiết lập những thứ này có thể được tìm thấy trong các READMEtệp đi kèm với các gói.


@Jorge: cảm ơn rất nhiều vì lời đề nghị này! Tôi đã cập nhật văn bản trả lời.
Riccardo Murri

2

Các tập tin

Đối với các tệp, tôi sẽ đồng bộ hóa dựa trên mạng cho các tệp phổ biến (giả sử Ubuntu One hoặc Dropbox ) và sau đó có một thư mục dùng chung cho các tệp lớn hơn (có thể là Âm nhạc, Ảnh, Video và Ubuntu ISO). Đây có thể là một gắn kết NFS, khi nó không thành công quá nhiều, hoặc chia sẻ Samba, hoặc có thể là một trong một số công nghệ khác.

LDAP

LDAP thất bại chắc chắn gây ra rắc rối. Tất cả các loại tài khoản hệ thống mà bạn thường không biết là không thể dịch (tên <-> số id) và tốt nhất là hệ thống sẽ liên tục bị treo trong một phút trong khi chờ phản hồi từ máy chủ LDAP trước đó rơi trở lại hệ thống địa phương. Hoặc hệ thống có thể bị khóa và hỏng hoàn toàn.

một số cách xung quanh này . Bạn có thể thiết lập một bản sao cục bộ và đồng bộ hóa nó, theo nhiều cách khác nhau - xem các câu trả lời khác cho câu hỏi này và cho câu hỏi được liên kết. Bạn cũng có thể yêu cầu LDAP không nhận người dùng hệ thống từ thư mục LDAP mà từ các tệp cục bộ. Trên các máy chủ của chúng tôi, chúng tôi đã đặt những điều sau vào cuối của chúng tôildap.conf

# We need to ensure that various things can work without LDAP being available
# for example: booting, ssh in as root, apache ...
nss_initgroups_ignoreusers avahi,avahi-autoipd,backup,bin,daemon,dhcp,dhcpd,games,gdm,gnats,haldaemon,hplip,irc,klog,libuuid,list,lp,mail,man,messagebus,munin,mysql,nbd,news,ntp,nut,polkituser,proxy,pulse,root,sshd,statd,sync,sys,syslog,uucp,www-data

Bạn sẽ muốn đảm bảo rằng tất cả người dùng hệ thống đều nằm trong danh sách đó. Thậm chí sau đó có lẽ không đủ cho việc sử dụng máy tính xách tay.

Từ trang người đàn ông nss_ldap

nss_initgroups_ignoreusers <user1,user2,...,userN>
          This option directs the nss_ldap implementation of initgroups(3)
          to return NSS_STATUS_NOTFOUND if called with a listed  users  as
          its argument.

Vì vậy, về cơ bản LDAP giả vờ rằng họ không biết những người dùng đó mà không liên hệ với máy chủ chính, do đó NSS rơi vào người dùng cục bộ và hệ thống hoạt động tốt.

Một ý tưởng cuối cùng là nếu bạn sẵn sàng dành thời gian học LDAP, thay vào đó bạn có thể học một số con rối cơ bản và sử dụng nó để giữ cho tất cả người dùng của bạn giống nhau trên tất cả các hệ thống - ví dụ, xem công thức con rối này . Con rối sẽ cho phép bạn làm rất nhiều việc khác nữa - cài đặt các gói chung, thiết lập chung các khía cạnh khác nhau ...

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.