Isso acontece se a primeira vez que você executa o NPM, é com o sudo, por exemplo, ao tentar fazer uma instalação do npm -g.
As pastas de cache precisam pertencer ao usuário atual, não raiz.
sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config
Isso dará propriedade às pastas acima ao executar com permissões de usuário normais (não como sudo).
Também é importante notar que você não deve instalar pacotes globais usando o SUDO. Se você tiver problemas com permissões, vale a pena alterar seu diretório global. Os documentos recomendam:
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
Em seguida, atualize seu PATH em qualquer lugar que você definir (~ / .profile etc.)
export PATH=~/.npm-global/bin:$PATH
Você precisará garantir que a variável env PATH esteja definida (reiniciando o terminal ou usando o comando source)
https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally