Получение привилегий SUDO для ‘child_process.exec’

#javascript #node.js

#javascript #node.js

Вопрос:

Я использую exec from child_process в узловом приложении для запуска некоторых команд оболочки.

Проблема в том, что мне нужны sudo привилегии для запуска некоторых команд, и я не уверен, как программно реагировать на запрос пароля.

Я не хочу, чтобы приложение зависало, пока пользователь не введет пароль, я хочу, чтобы приложение вводило пароль по умолчанию и выполняло команды, требующие sudo использования указанного пароля.

Возможно ли это? В идеале я хотел бы сделать это без предварительного входа в систему как su , т.е. просто запустить приложение и заставить его работать.

Пожалуйста, никаких дополнительных библиотек.

Комментарии:

1. Можете ли вы предоставить дополнительную информацию? Почему бы не разрешить владельцу процесса запускать указанные команды без необходимости вводить пароль?

2. Как правило, это очень плохая идея, если вы принимаете какой-либо пользовательский ввод. sudo существует по очень веской причине… с оговоркой: это зависит от того, какую ОС вы используете, если вы работаете в Linux, вы бы поместили команды, которые вам нужны для запуска от имени root, в файл sh и использовали visudo для предоставления этому конкретному скрипту root-прав. blog.rodneyrehm.de/archives/36-Always-Run-Script-As-Root.html

3. @Philippe Я хотел бы делать все из приложения node.

4. @MatthewLerner насколько я знаю, это невозможно по очень веским соображениям безопасности.

5. @FelixKling В принципе, это для «собственного» приложения. Я бы хотел, чтобы пользователь просто запустил приложение и заставил его «просто работать».

Ответ №1:

Вы могли бы установить SUID для файла, чтобы он всегда запускался с разрешениями владельца файла или GUID, если вы хотите, чтобы он запускался с разрешениями группы. Более подробную информацию можно найти здесь