데이터 디렉터리 변경 후 Mongodb 권한 오류

데이터 디렉터리 변경 후 Mongodb 권한 오류

방금 Ubuntu에 mongodb 버전 3.0.3을 설치했습니다. conf 파일을 편집하고 기본 데이터 디렉터리를 "/home/user/mongodb"로 변경하고 다음 권한을 부여했습니다.

drwxr-xr-x  4 mongodb mongodb  4096 May 29 23:26 mongodb

conf 파일에서 다른 것을 변경하지 않았습니다. mongod 서비스를 시작하려고 하면

sudo service mongod start

mongo 명령을 통해 쉘에 연결했는데 다음 오류가 발생했습니다.

MongoDB shell version: 3.0.3
connecting to: test
2015-05-29T23:58:49.450+0200 W NETWORK  Failed to connect to 127.0.0.1:27017, reason: errno:111 Connection refused
2015-05-29T23:58:49.452+0200 E QUERY    Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed
    at connect (src/mongo/shell/mongo.js:179:14)
    at (connect):1:6 at src/mongo/shell/mongo.js:179
exception: connect failed

서버를 시작하려고 할 때마다 로그 파일에 다음과 같이 표시됩니다.

2015-05-30T00:01:02.552+0200 I CONTROL  ***** SERVER RESTARTED *****
2015-05-30T00:01:02.581+0200 I STORAGE  [initandlisten] exception in initAndListen std::exception: boost::filesystem::status: Permission denied: "/home/user/mongodb/storage.bson", terminating
2015-05-30T00:01:02.581+0200 I CONTROL  [initandlisten] dbexit:  rc: 100

내가 아는 한 권한은 정확합니다. 무엇이 문제일까요?

답변1

기본적으로 사용자의 홈 디렉토리는 해당 소유자만 읽고 쓰고 나열할 수 있으므로 다른 사용자(루트 제외)는 다른 사용자의 홈 폴더 내용을 나열할 수 없습니다. 따라서 mongodb 사용자가 새로 제공된 디렉터리에 액세스할 수 있는지 확인해야 합니다. 다음과 같은 명령을 사용하여 확인할 수 있습니다.

namei -m /home/user/mongodb

출력 예

f: /home/scantlight/mongodb
  dr-xr-xr-x /
  drwxr-xr-x home
  drwx------ scantlight
  drwxr-xr-x mongodb

보시다시피 내 홈 폴더에는읽고 쓰기나는 권한이 있습니다, 소유자... 다른 사용자는 권한이 없으므로 다른 사용자가 내 홈 폴더의 내용을 나열할 수 없습니다(루트 제외).

물론 홈 디렉터리의 다른 사용자에게 쓰기 또는 읽기 권한을 부여하고 싶지는 않지만 대상 폴더에 대한 액세스 권한은 갖고 싶습니다. 여기서 x 플래그를 사용할 수 있습니다. 파일에 x 플래그가 설정되면 파일을 실행할 수 있다는 의미이므로 실행 플래그라고 합니다. 그러나 이 플래그가 폴더에 설정되고 r(읽기) 또는 w(쓰기) 플래그가 모두 설정되지 않으면 시간이 설정됩니다. 이는 동일한 그룹의 다른 사용자가 이 폴더를 통해 더 깊은 폴더에 접근할 수 있음을 의미합니다.

따라서 mongodb 사용자가 액세스하고 읽고 쓸 수 있는지 확인하십시오./홈/사용자/mongodb폴더... 홈 폴더에는 다른 모든 사용자에 대해 실행 가능한 플래그(x 플래그)가 설정되어 있어야 합니다.

chmod -R o+x /home/user/mongodb

이후 이전 출력 예는 다음과 같아야 합니다.

f: /home/scantlight/mongodb
 dr-xr-xr-x /
 drwxr-xr-x home
 drwx-----x scantlight
 drwxr-xr-x mongodb

다른 모든 사용자에 대한 x 권한을 참고하세요. 도움이 되지 않으면 :)... 내부의 파일 권한을 확인하세요./홈/사용자/mongodb폴더에 포함된 파일의 권한에 문제가 있을 수 있나요?

관련 정보