Skip to Content

Fix NPM no write permissions to global system directory

Learn how to resolve the "no write permissions to global system directory" error in NPM by adjusting permissions and using alternative installation methods.

karchunt

Kar Chun Tan

Creator

Metadata

Tue Dec 23 2025

2 min read

383 words

Fix NPM no write permissions to global system directory

When you install npm packages globally using the -g flag, you might encounter an error message indicating that you do not have write permissions to the global system directory. This issue typically arises due to insufficient permissions for the user account trying to perform the installation.

kc@kcserver:~$ npm install -g pnpm npm error code EACCES npm error syscall mkdir npm error path /usr/lib/node_modules/lib npm error errno -13 npm error Error: EACCES: permission denied, mkdir '/usr/lib/node_modules/lib' npm error at async mkdir (node:internal/fs/promises:861:10) npm error at async Arborist.reify (/usr/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js:109:7) npm error at async Install.exec (/usr/lib/node_modules/npm/lib/commands/install.js:150:5) npm error at async Npm.exec (/usr/lib/node_modules/npm/lib/npm.js:208:9) npm error at async module.exports (/usr/lib/node_modules/npm/lib/cli/entry.js:67:5) { npm error errno: -13, npm error code: 'EACCES', npm error syscall: 'mkdir', npm error path: '/usr/lib/node_modules/lib' npm error } npm error npm error The operation was rejected by your operating system. npm error It is likely you do not have the permissions to access this file as the current user npm error npm error If you believe this might be a permissions issue, please double-check the npm error permissions of the file and its containing directories, or try running npm error the command again as root/Administrator. npm error A complete log of this run can be found in: /home/kc/.npm/_logs/2025-12-23T09_36_53_527Z-debug-0.log

To resolve this issue, you have a few options.

You can configure npm to use a different directory for global installation where you have write permissions.

  1. Create a folder for global installations

    mkdir ~/.npm-global
  2. Configure NPM to use this new path

    npm config set prefix '~/.npm-global'
  3. Update shell environment

    ~/.bashrc
    # add the following line at the end of the file export PATH=~/.npm-global/bin:$PATH
  4. Apply the changes

    source ~/.bashrc
  5. Re-run the installation

    npm install -g <package>

Method 2: Use a Node Version Manager

There are some tools like nvm (Node Version Manager)  can install Node.js and NPM directly in your user home directory that actually auto bypass the /usr/lib permission issues.

  1. Download and install nvm

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
  2. Export NVM dir

    export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
  3. Install a version of Node

    nvm install node
  4. Install package

    npm install -g <package>

Method 3: Change default global directory ownership

You can change the ownership of the existing node_modules folder to your current user.

sudo chown -R $(whoami) /usr/lib/node_modules
Last updated on