`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
-rwxRXrx 1 루트 mlocate 39K 2014년 11월 17일 /usr/bin/mlocate

. 없이 명령 setuid을 실행할 수 있으려면 그룹에 비트가 필요합니다 . 문제가 해결되면 출력은 다음과 같아야 합니다.locatesudols

$ ls -lathr /usr/bin/mlocate
-rwxRSrx 1 루트 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

관련 정보