TechFeedTechFeed
npm설정

npm EACCES 권한 거부 — permission denied (전역 설치)

npm error code EACCES / Error: EACCES: permission denied
한 줄 해결: 전역 설치 경로에 쓰기 권한이 없어 발생하며, sudo로 강제하기보다 npm 전역 경로를 사용자 디렉터리로 바꾸거나 nvm을 쓰는 것이 안전합니다.

이런 증상일 때

npm install -g 또는 전역 패키지 실행 시 EACCES permission denied가 납니다. 시스템 파이썬/노드 경로에 설치하려다 막히는 경우입니다.

원인

  • 전역 node_modules가 시스템 디렉터리(/usr/local 등)에 있어 일반 사용자가 못 씀
  • sudo로 설치했던 파일의 소유권이 root로 꼬임
  • Node를 시스템 패키지로 설치해 권한 경계가 엄격

해결 방법

1
nvm으로 Node 관리(권장)

nvm은 Node와 전역 패키지를 사용자 홈에 두어 권한 문제가 사라집니다.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
nvm install --lts
2
npm 전역 경로 변경

전역 prefix를 사용자 디렉터리로 바꿔 sudo 없이 설치합니다.

npm config set prefix ~/.npm-global
# PATH에 ~/.npm-global/bin 추가
3
sudo는 지양

sudo npm install -g는 권한을 더 꼬이게 만들 수 있어 권장하지 않습니다. 이미 꼬였다면 소유권을 복구합니다.

sudo chown -R $(whoami) ~/.npm
💡 예방: Node는 nvm으로 설치해 전역 패키지를 사용자 영역에 두면 EACCES를 근본적으로 피합니다.
npmEACCES권한nvm전역설치

관련 에러

관련 가이드

npm ERESOLVE, 피어 의존성 충돌, legacy-peer-deps, overrides | 설치가 멈추면 뭐부터 볼까?프록시, matcher, 서버 액션, 관리자 경로 | 화면만 잠그면 저장이 열릴까?mise, nvm, pyenv, 도구 버전 | 클론 직후 노드가 왜 다르나?Bun, 노드, pnpm | 패키지 설치가 5배 빠르면 실제로 바꿔야 하나?