Когда я работаю updatedb
от терминала я получаю эту ошибку:
updatedb: can not open a temporary file for `/var/lib/mlocate/mlocate.db'
Любые идеи о том, как добраться updatedb
работать?
После обновлений Ubuntu 14 я продолжал получать
$ locate chruby
locate: can not open `/var/lib/mlocate/mlocate.db': Permission denied
, поэтому проблема заключалась не в расширении разрешений на чтение в этом файле, в отличие от других ответов.
Мой « некорневой пользователь » является главным .Так как root я добавил этого пользователя в группу mlocate :
# addgroup master mlocate
После перечисления деталей этого каталога, чтобы увидеть владельцев:
# ls -al /var/lib/mlocate
drwxr-xr-x 2 root root 4096 Jun 19 13:21 ./
drwxr-xr-x 94 root root 4096 Jan 23 11:27 ../
-rw-r----- 1 root mlocate 50134121 Jun 19 13:21 mlocate.db
Считайте man updatedb
и изучите, как записать updatedb
вывод в другом месте, в каталоге у Вас есть разрешение записи для.
Я понимаю, что это - старое сообщение, но я не вижу это решение в другом месте.
Проблема не mlocate.db
файл, как Вы ожидали бы. Это - полномочия на mlocate
исполняемый файл. Это устранит проблему:
sudo chmod 2755 /usr/bin/mlocate
Это - источник проблемы:
$ ls -lathr /usr/bin/mlocate -rwxr-xr-x 1 root mlocate 39K Nov 17 2014 /usr/bin/mlocate
Вам нужен a setuid
обдумал группу, чтобы позволить Вам работать locate
команда без sudo
. После того как это фиксируется, Ваш ls
вывод должен быть похожим на это:
$ ls -lathr /usr/bin/mlocate -rwxr-sr-x 1 root mlocate 39K Nov 17 2014 /usr/bin/mlocate
Просто выполнение a chmod
поскольку некоторые другие рекомендуют против db
сам файл будет только работать до следующего раза кто-то работает updatedb
. Затем полномочия будут сброшены.