Как запустить PHP exec () от имени пользователя root?

Есть какой-то метод безумия. Как правило, если браузер может интерпретировать дату как ISO-8601, он будет. «2005-07-08» попадает в этот лагерь, и поэтому он анализируется как UTC. «8 июля 2005» не может, и поэтому он анализируется по местному времени.

Подробнее см. JavaScript и даты, What Mess! .

30
задан Peter Mortensen 10 December 2009 в 17:30
поделиться

5 ответов

Это очень небезопасно и плохая идея. Пересмотрите свой дизайн. Если вы действительно хотите сделать это, используйте sudo в соответствии с рекомендациями. Альтернативным решением может быть запуск от имени root, но внутри chroot или образа vm (оба из которых могут быть взломаны, но все же).

Или лучше всего запускать как sudo внутри chroot!

3
ответ дан 27 November 2019 в 22:04
поделиться

Не делайте этого! Вы будете широко открыты для всех видов злонамеренного взлома.

Взгляните на документацию по «sudo».

Вы должны иметь возможность настроить все необходимые команды как сценарии с поддержкой «sudo». Гораздо лучше написать конкретные сценарии с ограниченными функциями, чем раскрывать основная привилегированная команда.

Как в:

exec ('sudo getIpTables.ksh')
34
ответ дан 27 November 2019 в 22:04
поделиться

Если вы не используете suphp и не настроите его для работы с правами суперпользователя, вы не сможете запускать какой-либо сценарий PHP от имени любого другого пользователя системы, кроме того, который использует PHP.

Edit:

Просто небольшая идея. Добавьте каким-либо образом процесс очереди и запустите процесс cron в crontab корневого пользователя.

Пожалуйста, будьте очень осторожны с этим. Любая инъекция может буквально разрушить систему.

3
ответ дан 27 November 2019 в 22:04
поделиться

Просто предположение - это веб-приложение PHP, которое будет делать это? Это звучит не слишком безопасно. Приложение, которому нужен root - не могли бы вы создать его отдельно, а затем вызывать из PHP? В противном случае, возможно, вы сможете выполнить sudo для процесса, чтобы он мог работать от имени пользователя root.

0
ответ дан 27 November 2019 в 22:04
поделиться

Вы можете поместить необходимые команды в отдельный скрипт / исполняемый файл (sh, PHP, настоящий исполняемый файл, не имеет значения), изменить его владельца на root и применить "setuid" к Это.

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

1
ответ дан 27 November 2019 в 22:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: