2017-04-11 6 views
1

/data/db 디렉토리를 사용하도록 기본값으로 mongod를 실행하려고합니다. 내가 먼저 mongod을 실행할 때 나는 다음과 같은 오류가 발생했습니다 데이터 디렉토리 다른 많은 사람들처럼mongodb &/data/db 디렉토리 사용 권한

sudo chown mongodb:mongodb /data -R 

의 소유자를 변경 :.

의미가 있습니다하지만 이해가되지 않습니다
2017-04-11T12:32:25.932-0500 I STORAGE [initandlisten] exception in initAndListen: 28596 Unable to determine status of lock file in the data directory /data/db: boost::filesystem::status: Permission denied: "/data/db/mongod.lock", terminating 

가 아니라 내가 실제로 mongod를 실행할 수있는 방법은 경우 I :

chmod 777 /data -R 

내가

하는 경우
chmod 666 /data -R 

동일한 오류가 발생합니다. 이것이 데이터 디렉토리로되어 있기 때문에 왜 실행 권한이 필요합니까?

내가는 MongoDB의 그룹

sudo usermod -g mongodb myuser 

내 사용자를 추가하고 난

chmod 770 /data -R 

하고 여전히 내가 mongodb 그룹의 구성원 해요 심지어 통해 실패를했습니다.

왜 나는이 모든 것을 망쳐 놓고 있습니까? 왜냐하면 나는 데이터 디렉토리를 적절히 보호하고 777 보안으로 실행하고 싶지 않기 때문입니다.

그래서 질문은 다음과 같습니다

  1. 이유는
  2. 왜 나는 내가 MongoDB를 그룹의 일원이었다 때를 실행할 수 없습니다입니다 필요한 실행 권한인가?
+0

어떤 OS입니까? mongod를 시작하기 위해 사용하고있는 명령은 무엇입니까? – helmy

+0

이'sudo chown mongodb : mongodb/data -R'가 작동 했습니까 ?? 경로 뒤에'-R' 플래그가 전달되는 이유는 무엇입니까? – franklinsijo

+0

@helmy 우분투 14.04 – coding4fun

답변

1

디렉토리에는 실행 권한이 있어야하지만 디렉토리 내의 파일에는 실행 권한이 필요하지 않습니다. 또한 @franklinsijo가 지적한 것처럼 -R은 chmod의 첫 번째 매개 변수 여야합니다. 데이터가 권한을 실행 한 후 읽기 및 쓰기 만 데 모든 정상 파일을 반환에서/

$ sudo chmod -R 770 /data 
$ sudo find /data -type f -exec chmod 660 {} \; 

이 먼저 모든 것을 제공하지만 실행하지 :

다음 작업을 수행 할 것이다 일을 해결하려면.

+0

find 명령에서 다음 오류가 발생합니다. find : 경로 앞에 expression이 있어야합니다. chmod ' – coding4fun

+0

죄송합니다. find 명령에 -exec를 추가했습니다. –