Похоже, что node
находится на нестандартном пути, или, по крайней мере, не на пути root. Есть несколько способов обойти это.
Использовать полный путь к node
Найти полный путь с помощью which node
Если, скажем, он находится в /home/user/bin/node
, то вызовите sudo /home/user/bin/node app.js
Или, как предложил @UlrichSchwarz, вы можете объединить эти два способа с помощью подстановки команд: sudo $(which node) app.js
Помните, что пользователю, которому вы sudo
даете права на чтение/исполнение, нужны права на чтение/исполнение местоположения, что не так важно, когда вы sudo
даете права root
Вызовите sudo
с опцией -E
для сохранения переменных окружения
sudo -E node app. js
Это сохранит ваш $PATH
от предыдущего sudo
Более подробную информацию вы можете найти на странице sudo
: http://linux.die.net/man/8/sudo