Я уверен, что это очень простой вопрос, но я боюсь, что мне не удалось заставить его работать или понять, что происходит.
У меня есть проект узла, который я обычно запускаю с
sudo npm start
, и я пытаюсь создать сценарий bash, который запустит это для меня.
Я пробовал несколько вариантов:
su myname -c "npm run start"
sudo su myname -c "npm run start"
su myname -c "sudo npm start"
, но все они, похоже, выполняют команду без прав суперпользователя. Из исследования, которое я сделал, кажется, что
sudo su myname -c "npm run start"
является правильным, но он не работает (он работает, но без разрешений). Может ли кто-нибудь указать мне в правильном направлении?
Не используйте обычный скрипт sudo в сценариях, запускайте весь скрипт с правами root и используйте sudo -u YOURUSERNAME для выполнения команд без прав root, если это действительно необходимо.
Напишите сценарий, подобный этому :
#!/bin/bash
npm start
Сохраните его, сделайте его исполняемым с chmod +x /path/to/script и запустите его с правами root с помощью:
sudo /path/to/script # from a terminal
gksudo /path/to/script # without terminal (e.g. for a starter)
kdesudo /path/to/script # without terminal, KDE equivalent
Это все, что нужно.
Вы можете добавить дополнительные команды к скрипту, вы можете, например, проверить, запущен ли он с правами root и выйти из него (благодаря PerlDuck):
[[ $EUID -ne 0 ]] && echo "This script must be run as root." && exit 1
Не используйте обычный скрипт sudo в сценариях, запускайте весь скрипт с правами root и используйте sudo -u YOURUSERNAME для выполнения команд без прав root, если это действительно необходимо.
Напишите сценарий, подобный этому :
#!/bin/bash
npm start
Сохраните его, сделайте его исполняемым с chmod +x /path/to/script и запустите его с правами root с помощью:
sudo /path/to/script # from a terminal
gksudo /path/to/script # without terminal (e.g. for a starter)
kdesudo /path/to/script # without terminal, KDE equivalent
Это все, что нужно.
Вы можете добавить дополнительные команды к скрипту, вы можете, например, проверить, запущен ли он с правами root и выйти из него (благодаря PerlDuck):
[[ $EUID -ne 0 ]] && echo "This script must be run as root." && exit 1
Не используйте обычный скрипт sudo в сценариях, запускайте весь скрипт с правами root и используйте sudo -u YOURUSERNAME для выполнения команд без прав root, если это действительно необходимо.
Напишите сценарий, подобный этому :
#!/bin/bash
npm start
Сохраните его, сделайте его исполняемым с chmod +x /path/to/script и запустите его с правами root с помощью:
sudo /path/to/script # from a terminal
gksudo /path/to/script # without terminal (e.g. for a starter)
kdesudo /path/to/script # without terminal, KDE equivalent
Это все, что нужно.
Вы можете добавить дополнительные команды к скрипту, вы можете, например, проверить, запущен ли он с правами root и выйти из него (благодаря PerlDuck):
[[ $EUID -ne 0 ]] && echo "This script must be run as root." && exit 1