Я ищу способ безопасного выполнения сценария оболочки с помощью sudo через веб-интерфейс. Безопасность здесь является главной заботой. Я не хочу предоставлять свой файл PHP для полного доступа к sudo. Каким будет лучший способ добиться этого?
Безопасно выполнить сценарий оболочки с помощью sudo через веб-интерфейс
comment
Пожалуйста, добавьте больше деталей, ваш вопрос не ясен.
- person Kaushal   schedule 23.07.2020
comment
Предоставьте вашему пользователю веб-сервера доступ sudo для запуска только одной команды и только от имени конкретного пользователя.
- person that other guy   schedule 24.07.2020
comment
@thatotherguy, не могли бы вы подробнее рассказать, как я могу предоставить доступ для одной команды
- person Vipin   schedule 24.07.2020
Ответы (1)
Лучшим решением было бы, чтобы ваш php-файл выполнял скрипт bash, который выполняет команды sudo, поскольку не рекомендуется предоставлять пользователю веб-сервера root/admin доступ.
С файлом bash вы можете контролировать то, что выполняется, будучи уверенным, что его нельзя легко изменить, и даже передавать переменные, если это необходимо. IE выполняет разные команды sudo в зависимости от переданной переменной.
person
LUX
schedule
23.07.2020
Спасибо за ответ, я пытаюсь это сделать только с помощью сценария bash, но мой сценарий bash требует некоторого разрешения sudo для правильного выполнения. Я могу легко запустить его с разрешением sudo, но меня больше всего беспокоит безопасность. Не могли бы вы рассказать подробнее, как запустить этот скрипт bash с разрешением sudo через веб-интерфейс без ущерба для кода, и это также необходимо защитить.
- person Vipin; 24.07.2020
@Vipin, выполняющий команду оболочки через Интернет, не содержит кода. вы бы отправили буквальную команду оболочки для выполнения файла, как если бы вы были на консоли. Поскольку это делается в фоновом режиме, где исходный код будет виден только на стороне сервера, конечный пользователь не может изменить эту команду, если только вы не сделаете ее динамической переменной, что я бы вообще не рекомендовал! моим лучшим решением было бы создать 2 файла, если вам действительно нужно разрешение sudo для выполнения. 1, который выполняет сервер, который содержит инструкции для выполнения другого файла с правами администратора.
- person LUX; 26.09.2020