У меня есть bash
сценарий, который должен запускаться с правами суперпользователя , но должен вызываться обычным пользователем.
Сложность в том, что скрипт не должен запрашивать пароль, и я не хочу использовать файл sudoers . Я хотел бы избежать использования sudo или su .
Это возможно?
bash
permissions
Стефан
источник
источник
Ответы:
Если бы это был не bash-скрипт, а обычное приложение, вы бы передали право владения им root и установили бит setuid в приложении. Затем после выполнения эффективный пользователь, под которым запускается приложение, является пользователем root. Однако из соображений безопасности это во многих системах запрещено для сценариев оболочки. Этот вопрос здесь, на unix.stackexchange.com, описывает способы, как это преодолеть.
источник
Используйте sudo. Если вы не хотите звонить
sudo /path/to/myscript
, напишите однострочную оболочкуexec sudo /path/to/myscript "$@"
. См. Разрешить setuid для сценариев оболочки , в частности ответ Мачей Пехотки об использовании sudo и мое более общее обсуждение программ setuid .источник
sudo
.