Die Verwendung von locate.updatedb funktioniert in Lion nicht

Vor einer Woche habe ich ein Upgrade von Snow Leopard auf Lion durchgeführt. Ich möchte den Locate-Befehl verwenden, aber die Locate-Datenbank wurde noch nicht erstellt. Also versuchte ich es mit Laufen

sudo launchctl -w /System/Library/LaunchDaemons/com.apple.locate.plist

Die plist-Datei zeigt nur auf /usr/libexec/locate.updatedb und ich erhalte ständig den folgenden Fehler im Syslog. su: pam_acct_mgmt: error in service module
Wenn ich versuche, locate.updatedb direkt auszuführen, erhalte ich den gleichen Fehler im Syslog.

Ich könnte damit umgehen, Locate nicht zu verwenden, aber was mich am meisten stört, ist, dass ich nicht weiß, was das Problem verursacht.

1) Ich gehe davon aus, dass Sie neu gestartet haben und dass das betreffende Konto ein Administratorkonto ist. 2) Unter der Annahme von Nr. 1, können Sie „sudo“ für andere Befehle verwenden, z. B. „sudo id“? 3) „locate“ ist in Lion weitaus weniger nützlich, da es selbst dann, wenn es von root ausgeführt wird, nur „öffentliche“ Dateien findet.
Ich habe neu gestartet, mein Konto befindet sich in der Admin-Gruppe und sudo funktioniert wie erwartet (dh sudo id gibt die Benutzeridentität von root zurück). Ich weiß, dass locate weniger nützlich ist als zum Beispiel unter Linux, ich mag es nur nicht, dass es nicht funktioniert. Da ich ein Upgrade und keine Neuinstallation durchgeführt habe, möchte ich in Zukunft keine weiteren Überraschungen erleben.
Ich bin derjenige, der Ihren Text bearbeitet und die "Bearbeitung" entfernt hat, da sie für die Frage nicht relevant ist. Wenn Sie sich fragen, warum ich das tun kann, lesen Sie bitte die FAQ . Entschuldigung für den Rechtschreibfehler, den ich gemacht habe.

Antworten (4)

Das Debuggen von pam kann schwierig sein.

Haben Sie versucht, eine echte Root-Shell zu erstellen sudo -sund den Befehl auszuführen /usr/libexec/locate.updatedb.

Alternativ können Sie versuchen, ein neues Administratorkonto zu erstellen, um sicherzustellen, dass Ihr Administratorkonto über die richtigen Berechtigungen/Authentifizierung verfügt. Irgendwelche seltsamen Dinge wie Server oder OpenLDAP, von denen wir wissen sollten?

Ich habe es mit einer Root-Shell versucht (nachdem ich Ihre Antwort gelesen hatte) und das Problem besteht weiterhin. In der Root-Shell bekomme ich nur su: Sorrynach dem Ausführen von /usr/libexec/locate.updatedb und im Syslog sehe ich die gleiche Fehlermeldung erneut. Ich habe ein neues Konto erstellt, das ich der Admin-Gruppe hinzugefügt habe, der gleiche Fehler tritt auf. Ich bin auf einem Lion-Client-Computer, daher sind keine Server-Dienstprogramme installiert und ich habe OpenLDAP nicht konfiguriert.

Das scheint bei mir zu funktionieren.

sudo /usr/libexec/locate.updatedb

Sie können den Befehl ausführen, um die von locate verwendete Datenbank direkt per Aufruf zu aktualisieren

sudo /usr/libexec/locate.updatedb 

Dies wird eine Weile dauern und sollte den gesamten Index aktualisieren.

Überprüfen Sie Ihre .bashrc-Pfade. Fügen Sie /usr/libexec in die $PATH-Anweisung ein, falls sie fehlt.

Können Sie einige Details darüber hinzufügen, was dies bewirkt und wie es das in der Frage beschriebene Problem löst?