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
을 실행할 수 있으려면 그룹에 비트가 필요합니다 . 문제가 해결되면 출력은 다음과 같아야 합니다.locate
sudo
ls
$ 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