Проблема заключается в том, что вы не выполнили скрипт узла с разрешениями root: sudo node filename.js
.
Кроме того, возможно, что дочерний процесс, который вы порождаете с оболочкой js Модуль не наследует эффективный UID процесса родительского узла. Если sudo node filename.js
не решит вашу проблему, я бы рекомендовал использовать пакет execa
вместо shelljs
для лучшей отладки и инструментария порожденного дочернего процесса: https://www.npmjs.com/package/execa
Вы можете определить uid
, gid
дочернего процесса, а также поток stdin, который вы можете установить на ignore
, чтобы не возникало никаких интерактивных приглашений (команда sudo распознает, что stdin
нет при условии и, следовательно, не открывать интерактивную подсказку).