Có giải pháp chung nào để sử dụng một thư viện NSS hai lần (hoặc nhiều hơn) không?
Trong trường hợp của tôi, tôi có hai máy chủ LDAP, một cục bộ trên máy và một điều khiển từ xa. Tôi cần làm cho NSS hoạt động với cả hai (nó sử dụng điều khiển từ xa nếu cục bộ không có mục bắt buộc).
Hiện tại nó đã được giải quyết để thư viện đơn ( PADL / nss_ldap ) được xây dựng hai lần. Trong cả hai trường hợp trước khi xây dựng sed
được sử dụng để thay đổi tất cả các nss_ldap
lần xuất hiện trong nguồn thành một thứ khác. Đối với mỗi trường hợp, một văn bản khác nhau được sử dụng (như nss_ldap_1
và nss_ldap_2
). Kết quả xây dựng được đổi tên cho phù hợp. Cả hai nhị phân được lưu trữ trên hệ thống đích và được đề cập đến /etc/nsswitch.conf
.
Ngoài ra cả hai thư viện này đều sử dụng các tệp cấu hình khác nhau /etc/
(nếu không nó sẽ không có ý nghĩa gì!). Tuy nhiên, điều này được thực hiện dễ dàng bằng cách chỉ thay đổi đối số trong configure
tập lệnh của thư viện chạy trước khi xây dựng.
Nhưng nó không "cảm thấy đúng". Có cách tiếp cận nào khác không?
Những gì tôi có thể tưởng tượng là chính thư viện NSS có thể hỗ trợ nhiều cấu hình để nó hoạt động như hai "trường hợp đơn lẻ". Nhưng điều này khó đạt được nếu bạn không phải là tác giả của thư viện. Ngoài ra, nó yêu cầu gọi thư viện tiếp theo cho cả hai cấu hình trong khi người ta có thể muốn có một số thư viện khác ở giữa.
Một cách tiếp cận khác là viết một trình chuyển tiếp đơn giản chỉ cần gọi một số thư viện khác với cấu hình khác. Nhưng điều này một lần nữa yêu cầu thư viện khác bằng cách nào đó có thể cấu hình lại được (nếu nó chỉ sử dụng một số tệp cấu hình cố định trong /etc
trình chuyển tiếp sẽ hoạt động giống như phiên bản đầu tiên). Và nó cũng chỉ hoạt động một lần - để có một thư viện được sử dụng ba lần trở lên, cùng một vấn đề trở lại với chính giao nhận.
sss
?