«Запуск npm» в скрипте bash не работает удаленно - PullRequest
0 голосов
/ 04 июля 2018

У меня есть сценарий bash, который включает в себя «npm start», и я запускаю этот bash из Telegram API удаленно, обычно он не работает. но если я просто войду в систему как пользователь root в консоли моего debian-stretch, этот API действительно работает! так где моя проблема? спасибо

этот код в bash:

#!/bin/bash
screen -dm sudo npm start --prefix /root/gbot/

1 Ответ

0 голосов
/ 04 июля 2018

Я раньше не использовал Telegram API. Однако я думаю, что вы столкнулись с проблемой прав доступа root.

Запуск из удаленного API может не использовать пользователя root (что может привести к проблеме уязвимости). Затем, если вы выполните команду, для которой требуется sudo, она попросит вас ввести пароль root, чтобы временно получить привилегию root. Однако, если вы используете удаленный API, у вас может не быть возможности ввести этот пароль root, что лишает вас возможности получить права root, тогда у вас нет разрешения на запуск чего-либо, связанного с sudo.

Чтобы решить эту проблему, вы можете использовать команду expect для автоматической отправки пароля root в процессе запроса пароля. Однако это может привести к уязвимости.

Лучшим решением может быть изменение привилегии (chmod) этого репозитория npm или перемещение его в какое-то место, где более безопасно и не требуется слишком высокая привилегия (может также использовать chmod).

...