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