После установки Node.js с официального сайта многие сталкиваются с проблемой: при глобальной установке пакетов возникают ошибки прав доступа. Типичное решение — использование sudo, но это создаёт серьёзные угрозы безопасности.
«Если вы используете сервер с привилегиями root и его взломали через уязвимость вашего кода, злоумышленник будет иметь полный контроль над вашей машиной»
Правильное решение
Необходимо изменить владельца нескольких директорий. Введите в терминал следующие команды:
sudo chown -R $(whoami) /usr/local/lib/node_modules sudo chown -R $(whoami) /usr/local/bin sudo chown -R $(whoami) /usr/local/share
Объяснение команд
Эти команды меняют владельца указанных каталогов с root на текущего пользователя. Флаг -R обеспечивает рекурсивное применение — право собственности меняется для директории и всех содержащихся в ней файлов и подпапок.
После выполнения этих команд npm можно использовать без привилегий администратора. Глобальная установка пакетов теперь работает без sudo:
npm install -g some-package