`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 -lathr /usr/bin/mlocate
-rwx処方箋rx 1 root mlocate 39K 2014年11月17日 /usr/bin/mlocate

なしでコマンドsetuidを実行できるようにするには、グループに少し手を加える必要があります。修正されると、出力は次のようになります。locatesudols

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

chmod他の人が推奨しているように、ファイル自体に対してを実行するだけでdbは、次に誰かが を実行するまでしか機能しませんupdatedb。その後、権限がリセットされます。

答え2

私の場合、Ubuntu 14にアップデートした後も、

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

したがって、他の回答とは異なり、問題はそのファイルの読み取り権限を拡大することではありませんでした。

私の "非ルートユーザー" はマスター。 ようにそのユーザーをグループに追加しました位置する:

# 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

関連情報