Использование locate.updatedb не работает в Lion

Неделю назад я обновился до Льва со Снежного Барса. Я хочу использовать команду locate, но база данных locate еще не создана. Поэтому я попытался запустить

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

Файл plist указывает только на /usr/libexec/locate.updatedb, и я продолжаю получать следующую ошибку в системном журнале. su: pam_acct_mgmt: error in service module
Когда я пытаюсь запустить locate.updatedb напрямую, я получаю ту же ошибку в системном журнале.

Я мог бы обойтись без использования locate, но больше всего меня беспокоит то, что я не знаю, что вызывает проблему.

1) Я предполагаю, что вы перезагрузились и рассматриваемая учетная запись является учетной записью «администратора». 2) Предполагая № 1, можете ли вы использовать «sudo» для других команд, таких как «sudo id»? 3) «locate» гораздо менее полезен в Lion, так как даже при запуске с правами root он находит только «общедоступные» файлы.
Я перезагрузился, моя учетная запись находится в группе администраторов, и sudo работает как положено (т.е. sudo id возвращает идентификатор пользователя root). Я знаю, что locate менее полезен, чем, например, в Linux, мне просто не нравится, что он не работает. Поскольку я сделал обновление, а не чистую установку, я не хочу никаких сюрпризов в будущем.
Я тот, кто отредактировал ваш текст и только что удалил «редактировать», поскольку он не имеет отношения к вопросу. Если вам интересно, почему я могу это сделать, пожалуйста, прочитайте faq . Извините за орфографическую ошибку, которую я сделал.

Ответы (4)

Отладка pam может быть сложной.

Вы пытались создать настоящую корневую оболочку sudo -sи запустить /usr/libexec/locate.updatedbкоманду.

В качестве альтернативы вы можете попробовать создать новую учетную запись администратора, чтобы убедиться, что ваша учетная запись администратора имеет правильные привилегии/аутентификацию. Какие-нибудь странные вещи, такие как сервер или OpenLDAP, о которых нам следует знать?

Я пробовал с корневой оболочкой (после прочтения вашего ответа), и проблема не устранена. В корневой оболочке я просто получаю su: Sorryпосле запуска /usr/libexec/locate.updatedb и в системном журнале снова вижу то же сообщение об ошибке. Я создал новую учетную запись, которую добавил в группу администраторов, возникает та же ошибка. Я работаю на клиентской машине Lion, поэтому никакие серверные утилиты не установлены, и у меня не настроен OpenLDAP.

Кажется, это работает для меня.

sudo /usr/libexec/locate.updatedb

Вы можете запустить команду для обновления базы данных, используемой локатором, напрямую, вызвав

sudo /usr/libexec/locate.updatedb 

Это займет некоторое время и должно обновить весь индекс.

Проверьте пути .bashrc. Включите /usr/libexec в оператор $PATH, если он отсутствует.

Можете ли вы добавить некоторые подробности о том, что это делает и как решает проблему, описанную в вопросе?