이 오류의 원인은 무엇입니까: 오류: EACCES, 권한이 거부되었습니다.

이 오류의 원인은 무엇입니까: 오류: EACCES, 권한이 거부되었습니다.

두 세 명의 사용자가 있습니다.

db,nr,ba

세 사람 모두 dbp 그룹의 멤버입니다.

Node.js는 /usr/bin에 설치되어 있습니다.

다음 명령을 실행하면:

/usr/bin/node /home/db/dbb/m/i.js

그런 다음 "ba" 사용자로 실행하면 정상적으로 작동합니다. 하지만 "nr"로 실행하면 다음 오류와 함께 충돌이 발생합니다.

Error: EACCES, permission denied './manifest.json'

dbb에는 권한이 있습니다. drwxr-s--- db dbp 매니페스트.json은 i.js와 동일한 폴더에 있는 파일입니다. 앱이 매니페스트.json을 읽으려고 시도할 때까지 앱이 실행되고 실행되는 것처럼 보이지만, 이 시점에서 충돌이 발생합니다.

편집: umask는 027입니다.

편집: 출력은 stat ./manifest.json다음과 같습니다

 File: `manifest.json'
  Size: 251         Blocks: 8          IO Block: 4096   regular file
Device: ca00h/51712d    Inode: 2598        Links: 1
Access: (0444/-r--r--r--)  Uid: ( 1001/db)   Gid: ( 1001/db)
Access: 2014-11-18 18:03:48.297158000 +0000
Modify: 2014-11-18 18:03:37.000000000 +0000
Change: 2014-11-18 18:03:48.298380902 +0000
 Birth: -

편집: 사용자 계정 db와 그룹 dbp를 삭제했습니다. umask를 002로 설정했습니다. 그런 다음 사용자 계정 db를 다시 생성하고 /usr/bin/node /home/db/dbb/m/i.jsdb로 명령을 실행하려고 시도했지만 동일한 오류가 발생했습니다.

이번에는 stat manifest.json동일한 결과를 얻습니다.

File: `manifest.json'
  Size: 251         Blocks: 8          IO Block: 4096   regular file
Device: ca00h/51712d    Inode: 2368        Links: 1
Access: (0444/-r--r--r--)  Uid: ( 1001/db)   Gid: ( 1001/db)
Access: 2014-11-18 19:08:35.709657000 +0000
Modify: 2014-11-18 18:03:37.000000000 +0000
Change: 2014-11-18 19:08:35.708011027 +0000
 Birth: -

답변1

db파일은 사용자 및 그룹이 소유합니다 db.

Access: (0444/-r--r--r--)  Uid: ( 1001/db)   Gid: ( 1001/db)

그러나 세상은 읽을 수 있다(444). 해당 디렉터리 계층 구조는 그렇지 않지만 그룹에서 읽을 수 있어야 합니다 dbp.~하지 않는 한 /home/db기본이 아닌 권한이 있습니다. 이는 umask(027)가 일반(002)보다 더 엄격하기 때문에 발생할 수 있습니다.

그렇지 않으면 프로세스가 파일을 열려고 시도했기 때문에 EACCES 오류가 발생한 것 같습니다.글쓰기.

답변2

터미널을 열고 다음 명령을 입력하십시오.

sudo chown -R $user:$group ./manifest.json

관련 정보