두 세 명의 사용자가 있습니다.
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.js
db로 명령을 실행하려고 시도했지만 동일한 오류가 발생했습니다.
이번에는 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