`updatedb` 無法開啟檔案 `mlocate.db`

`updatedb` 無法開啟檔案 `mlocate.db`

當我updatedb從終端運行時,出現以下錯誤:

updatedb: can not open a temporary file for `/var/lib/mlocate/mlocate.db'

關於如何上班有什麼想法嗎updatedb

答案1

我意識到這是一篇舊文章,但我在其他地方沒有看到這個解決方案。

mlocate.db正如您所期望的那樣,問題不在於文件。這是可執行檔的權限mlocate。這將解決這個問題:

sudo chmod 2755 /usr/bin/mlocate

這就是麻煩的根源:

$ ls -latr /usr/bin/mlocate
-rwx接收rx 1 root mlocate 39K 2014 年 11 月 17 日 /usr/bin/mlocate

您需要setuid對組有一定的了解,才能locate在沒有sudo.修復後,您的ls輸出應如下所示:

$ ls -latr /usr/bin/mlocate
-rwxRSrx 1 root mlocate 39K 2014 年 11 月 17 日 /usr/bin/mlocate

chmod簡單地按照其他人建議的方式對文件本身執行 adb只能在下次有人運行之前起作用updatedb。然後權限將被重置。

答案2

對我來說,更新到 Ubuntu 14 後,我仍然不斷收到

$ locate chruby
locate: can not open `/var/lib/mlocate/mlocate.db': Permission denied

所以問題不在於擴大該檔案的讀取權限,與其他答案不同。

我的 ”非root用戶「 是掌握。這樣我將該用戶新增到群組中移動定位:

# 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

答案3

請使用以下命令運行命令sudo

sudo updatedb

答案4

閱讀man updatedb並了解如何updatedb在您有寫入權限的目錄中的其他位置寫入 的輸出。

相關內容