所需組中不存在 LDAP 使用者
我們在實驗室中有 LDAP 和 NFS 設置。實驗室有 16 台機器和一台伺服器。所有 LDAP 使用者主目錄都存在於伺服器中。每當 LDAP 使用者從 16 台機器中的任何一台登錄時,他的家都會通過 NFS 自動掛載從客戶端機器中的伺服器呈現。
在所有客戶端機器中,我們都安裝了 virtualbox 並創建了一個組為vboxusers,其中包含所有 LDAP 使用者。因此,每當 LDAP 使用者登錄任何客戶端機器並執行虛擬盒時,他將能夠使用虛擬盒。
但是,在全新安裝 RHEL 和 VirtualBox 後的其中一台機器上,當我以 LDAP 使用者身份執行 VirtualBox 時,我收到“ guest OS inaccessible ”錯誤。我認為這可能是一些權限問題,所以我重置了該機器中vboxuser的權限。
然而,經過進一步調查,我們發現 LDAP 使用者實際上並未分配給組“ vboxusers ”,而是分配給了其他組。這怎麼可能,因為我從實驗室的工作機器上複製了 LDAP 和 NFS 配置文件,並在新安裝的機器上使用了相同的文件?
編輯:
ldap.conf 內容
# # LDAP Defaults # # See ldap.conf(5) for details # This file should be world readable but not world writable. #BASE dc=example, dc=com #URI ldap://ldap.example.com ldap://ldap-master.example.com:666 #SIZELIMIT 12 #TIMELIMIT 15 #DEREF never URI ldap://192.168.1.10/ BASE dc=xxx,dc=xxx #TLS_CACERTDIR /etc/openldap/cacerts
這是由於分配了不正確的組 ID。新安裝系統時,系統隨意將組 ID 501 分配給另一個組。
在實驗室的所有剩餘機器中,我們將組 ID 501 分配給vboxusers。這就是 LDAP 使用者無法訪問該特定機器上的 VirtualBox 的原因。
How can this be possible, as I copied the LDAP and NFS configuration files from the working machines in the lab and used the same files in the newly installed machine?
據我了解,您的實驗室需要相同的 LDAP 伺服器設置,所以我們需要導出主 LDAP 伺服器數據庫,然後導入新的 LDAP 伺服器。如果我是正確的,那麼您可以按照此設置進行操作。
安裝
注意:本指南基於 RHEL5.x/CentOS 5.x
使用以下命令安裝 OpenLDAP 包:
yum install openldap
配置伺服器,編輯
/etc/openldap/slapd.conf
,您可以像您的主伺服器一樣配置此設置database bdb suffix "dc=example,dc=com" rootdn "cn=Manager,dc=example,dc=com" rootpw secrete # or you can use encrypted pass using slappasswd
複製所需文件
install -o ldap -g ldap /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
在您的主伺服器上,將所有詳細資訊導出到 LDIF 文件中。
slapcat -l master.ldif
複製
master.ldif
到新的 LDAP 伺服器。現在在您的新 LDAP 伺服器上。
要將文件 master.ldif 中指定的條目導入 LDAP 數據庫,請執行以下命令:
slapadd -l ldif
現在使用以下命令啟動 LDAP 服務:
/etc/init.d/ldap start
在客戶端機器上:在 HOME 上掛載 NFS,在
/etc/fstab
然後使用以下命令啟用 LDAP 身份驗證:
authconfig --enableldap --enableldapauth --ldapserver=NEW_LDAPSERVER_IP -- ldapbasedn="dc=example,dc=com" –update
故障排除
預設情況下,ldap 日誌被禁用,您可以使用以下命令在 LDAP 伺服器上啟用 LDAP 日誌:
編輯
/etc/syslog.conf
local4.* /var/log/ldap.log
一旦重啟
syslog
服務/etc/init.d/syslog restart