Openldap

OpenLDAP 不會啟動,也不會記錄原因

  • June 16, 2011

最近需要在我們的一台伺服器上重新啟動 OpenLDAP。當我重新啟動服務時,命令提示符只是坐在那裡等待某些東西。我從來沒有得到[ OK ]. 如果我CTRL+C退出它,它會說

...killed.
/etc/openldap/cacerts/company.crt is not readable by "ldap[WARNING]

為了證明一點,我/etc/openldap遞歸地做了777。我仍然得到錯誤。

我沒有看到任何/var/log改變來給我一些回饋。我需要在哪裡解決這個問題?

這是一台執行 Fedora 8 的舊伺服器(我知道,怪罪之前的 IT 人員)。

以下是一些額外調試的想法。僅當您絕對肯定這不是權限問題時才需要這些…

首先,嘗試在調試模式下執行 slapd:

slapd -u ldap -g ldap -d 65

請注意,-d 的參數是一個位欄位,其值可以在slapd.conf手冊頁中找到(查找loglevel)。 65是trace + config,對於這類問題通常足夠冗長。這可能會或可能不會向您顯示任何有用的資訊。

如果這不起作用,我們可以使用strace(系統呼叫跟踪器)來弄清楚到底發生了什麼。像這樣執行slapd

strace -o /tmp/trace -f -s 1024 slapd -u ldap -g ldap -d 7

當它死掉時,您將擁有一個/tmp/trace包含所有系統呼叫的文件slapd。對於好奇的-f人,讓 strace 跟隨分叉(在這種情況下不是真的需要,但這是我的預設設置),-s 1024並使 strace 在跟踪日誌中列印多達 1024 個字節的字元串參數。

現在,使用grep來查找company.crt此文件中的引用。從理論上講,如果它們是權限問題,您會發現如下所示:

open("/tmp/company.crt", O_RDONLY)      = -1 EACCES (Permission denied)

如果文件失去,或者類似的東西:

open("/tmp/company.crt", O_RDONLY)      = -1 ENOENT (No such file or directory)

一個成功的打開看起來像這樣:

open("/tmp/company.crt", O_RDONLY)      = 3

3是 open 返回的文件描述符(並且可能是其他一些正整數)。

看一下,看看是否有明顯的東西跳出來。讓我知道這是否沒有幫助。

引用自:https://serverfault.com/questions/280484